首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与相机快门声音同时播放音频

与相机快门声音同时播放音频
EN

Stack Overflow用户
提问于 2012-12-11 13:28:52
回答 3查看 1.7K关注 0票数 1

如何在相机快门关闭的同时播放声音?

在我的应用程序中,我有一个嵌入式相机预览。活动开始5秒后,它会自动拍摄3张照片。在此期间,应用程序通过蓝牙接收一系列值。每次值大于预设阈值时,应用程序都会播放一个音调,这是使用MediaPlayer完成的。

问题是,当相机关闭时,快门滴答声似乎占据了所有音频,正在播放的音调停止,只有在快门滴答声3次后才会恢复。我不想让相机快门静音,所以有没有办法让快门快门发出声音呢?这一切都发生在一个活动中。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-11 14:51:30

一种可能的解决方案是对音调使用隐藏的ENFORCED_AUDIBLE流类型。这是相机快门声音最可能使用的流类型,因此除非快门声音已被静音,否则它不会被静音。

请注意,这种流类型直到ICS才被引入(或者可能是GB/HC,我不能肯定地说),所以它不会与现有的所有Android版本兼容。这个流类型标识符的整数值是7,但是如果您想以编程方式检查是否存在/获取它的值,那么您可以在AudioSystem类上使用反射来实现这一点。

下面是一个如何做到这一点的示例:

代码语言:javascript
复制
public static boolean mHasEnforcedStream = true;
public static int STREAM_SYSTEM_ENFORCED = 0;

...

static
{        
    try
    {
        Class asClass = Class.forName("android.media.AudioSystem");
        Field sseField = asClass.getDeclaredField("STREAM_SYSTEM_ENFORCED");
        STREAM_SYSTEM_ENFORCED = sseField.getInt(null);
    }
    catch (Exception e)
    {
        mHasEnforcedStream = false;
    }
}

请记住,如果您使用此流类型,即使用户连接了3.5 if有线耳机,或者即使用户已将电话设置为静音模式,您也始终会在扬声器中听到您的音调。

票数 1
EN

Stack Overflow用户

发布于 2012-12-11 14:42:27

我认为这是您应该需要的。这应该包含您需要的内容。第一个链接可能比第二个更有用,因为你想仍然有其他的声音,尽管你可以禁用特定于相机穿梭声音的音频通道。

票数 0
EN

Stack Overflow用户

发布于 2012-12-11 14:29:11

好吧,因为我对编程还很陌生,我会在谷歌上搜索哪些文件会发出摄像头的声音,我会把你的应用程序放在哪里,它会用不同的扩展名来重命名这些文件,这样声音就不会响起,让它们重命名回原始文件。或者我会看看如何通过改变摄像头的值来使摄像头保持静音。我知道在我的三星Galaxy SIII上,我必须更改相机文件名。(sprint运营商)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13814179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档