我正在开发一个播放器应用程序,我正在使用MediaPlayer它.
现在,我想改变比赛的速度.
我见过这么多具有此功能的应用程序.我怎样才能做到这一点?
Shi*_*pta 38
从API 23开始,MediaPlayer可以使用此方法设置播放速度.
MediaPlayer类
public void setPlaybackParams (PlaybackParams params)在API级别23中添加使用PlaybackParams设置播放速率.参数params PlaybackParams:回放参数.如果内部播放器引擎尚未初始化,则抛出IllegalStateException.如果不支持params,则为IllegalArgumentException.
示例代码:
MediaPlayer mp = ...; //Whatever
float speed = 0.75f;
mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(speed));
Run Code Online (Sandbox Code Playgroud)
对于API <23,请参阅上面(或下面)的Vipul Shah的回答.
Vip*_*hah 15
在MediaPlayer的不提供此功能,但拥有的Soundpool此功能.SoundPool类有一个名为的方法setRate (int streamID, float rate).如果您对API感兴趣请看这里.
这个片段将起作用.
float playbackSpeed=1.5f;
SoundPool soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100);
soundId = soundPool.load(Environment.getExternalStorageDirectory()
+ "/sample.3gp", 1);
AudioManager mgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
final float volume = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener()
{
@Override
public void onLoadComplete(SoundPool arg0, int arg1, int arg2)
{
soundPool.play(soundId, volume, volume, 1, 0, playbackSpeed);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28520 次 |
| 最近记录: |