让媒体播放器先在右侧扬声器上播放,然后在左侧扬声器上播放



我想播放一个从左边扬声器开始然后切换到右边扬声器的音频文件

我试过这样做:

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中播放音频与左或右扬声器静音(或在减少音量)?

编辑:

我在测试我的应用程序时得到了正确的行为,但随后它返回到我上面描述的完全相同的代码库。基于此,还有什么我能查清楚的吗?

其中一个选项是

  1. 使用setVolume(1.0F, 0F)启动媒体播放器;
  2. 当你想切换到其他扬声器时,使用getCurrentPosition()方法获取媒体播放器的当前位置。
  3. 然后停止播放。
  4. 然后再次开始setVolume(0F,1.0F);
  5. 使用seekTo()方法查找到第二步中获得的位置

开销:此方法可能会导致一些延迟

根据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°f而不是仅仅0°f,然后可能尝试在开始播放曲目之前设置音量,然后在播放时进行过渡

相关内容

最新更新