android - 在Android中处理AudioManager的最佳方法

标签 android audio media android-audiomanager

我想知道,对于媒体来说,处理Android中AudioManager的最佳方法是什么。
如您所知,AudiManager管理不同类型的音频,例如音乐或铃声。

如果我有一个玩声音效果和振动的应用程序,并且有3个 Activity ,那么我该如何处理此类类(class)?

-是否必须在每个 Activity 的onCreate方法上设置音量?
然后用

audioManager.setVolumeControlStream(AudioManager.STREAM_MUSIC);

-还是我必须做一个静态引用,并每次使用?
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

-或者这些是错误的,我不知道它是如何工作的?

说实话,我在3个 Activity 中遇到问题:在前2个 Activity 中,我有声音效果,而在第3个 Activity 中,只有振动。在第一个 Activity 中,声音处于“铃声模式”,其他两个处于“媒体模式”。因此音量不同,这是不好的。

最佳答案

为了使用AudioManager,您必须拥有它的一个实例(在您要使用它的每个Activity或Service中),因此:

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 

那么您可以使用它:
audioManager.setVolumeControlStream(AudioManager.STREAM_MUSIC);

无需在OnCreate()方法内部调用此方法,但在播放声音之前需要调用此方法。

关于android - 在Android中处理AudioManager的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19659042/

相关文章:

android - 自定义 SupportActionBar 在重新显示后看起来不同

audio - 音频和声音设置之间的区别

android - 尝试使用 Gradle、Robolectric 和 Travis CI 测试 Android 应用程序时出现 NoClassDefFoundError

android - 移动广告服务 : Choosing specific ads

audio - 有没有玩flac的跨浏览器解决方案? (或者理论上是否有可能制作一个)

Android 播放和循环播放音频

https - 当我使用 https 将它移动到另一个站点时,我的 css3 媒体查询将不起作用

ios - AVPlayerItem 和 KVO - 我错过了什么吗?

java - JMF替换

android - 使用 FusedLocationProviderClient 进行位置更新会产生内存泄漏