我想播放一个从左扬声器开始然后切换到右扬声器的音频文件。
我尝试过这样的事情:
MediaPlayer mp = new MediaPlayer();
// Setup audio file
mp.start();
mp.setVolume(1.0F, 0F);
// Delay a second or two (I actually use a Handler and the postDelayed method)
mp.setVolume(0F, 1.0F);
但是声音一直在两个扬声器上传播。
如何在左侧或右侧扬声器静音(或音量减小)的情况下在Android中播放音频?
修改:
在我测试我的应用程序时,我得到了正确的行为一段时间,但后来它返回到我上面描述的完全相同的代码库。基于此,还有什么我可以检查以找出发生了什么?
答案 0 :(得分:3)
一个选项是
完成。
开销:此方法可能会导致延迟
答案 1 :(得分:0)
根据Android API http://developer.android.com/reference/android/media/MediaPlayer.html
,您似乎正确地执行了此操作public void setVolume (float leftVolume, float rightVolume)
Sets the volume on this player. This API is recommended for balancing the output of
audio streams within an application. Unless you are writing an application to control
user settings, this API should be used in preference to setStreamVolume(int, int, int)
which sets the volume of ALL streams of a particular type. Note that the passed volume
values are raw scalars in range 0.0 to 1.0. UI controls should be scaled logarithmically.
Parameters
leftVolume left volume scalar
rightVolume right volume scalar
我最好的建议是尝试0.0F而不是0F,然后尝试在开始播放音乐之前设置音量,然后在播放时进行过渡。