Android 6.0 - 使用PlaybackParams设置视频速度

use*_*482 11 java video android video-processing android-mediaplayer

我有关于如何实现PlaybackParams来设置视频速度的问题:

public PlaybackParams getPlaybackParams ()

在API级别23
中添加使用PlaybackParams获取播放速率.

PlaybackParams setSpeed (float speed) //Sets the speed factor.
Run Code Online (Sandbox Code Playgroud)

返回:
正在使用的播放速率.
引发IllegalStateException:
如果内部同步引擎或音频轨道尚未初始化.

这是我的代码:

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() 
{
    @Override
    public void onPrepared(MediaPlayer mp) 
    {
        mp.setPlaybackParams(new PlaybackParams().setSpeed(1.f));

        if (mPlaybackState == PlaybackState.PLAYING) { mVideoView.start();}
    }
});
Run Code Online (Sandbox Code Playgroud)

Rai*_*ker 4

您在调用“setPlayParams”方法时收到 IllegalStateException,因为您没有执行 PlaybackParams params = mp.getPlaybackParams(),设置速度然后将其传递给 mp.setPlaybackParams()!调用 mp.getPlayParams() 时直接设置速度!

MediaPlayer mp = ...; 
float speed = 0.55f;     
mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(speed));
Run Code Online (Sandbox Code Playgroud)