8

res/raw に保存されているビデオ ファイルを再生するために VideoView を使用しています。ビデオの再生速度を制御する方法が見つかりませんでした。基本的にスクロールバーを動かしながら再生を減らしたり増やしたりしたいです。これを実装するための回避策はありますか?

4

4 に答える 4

2

いいえ、単に を使用して再生速度を変更することはできませんVideoViewVideoView制限さMediaPlayerれたメディア機能のみを提供します。

PVPlayer などのサードパーティ ライブラリを使用して、それを自分で実装する必要があります。

これが、Android の優れたメディア プレーヤーが非常に価値がある理由でもあります :)

于 2011-04-13T04:50:38.547 に答える
0

Mk Kamalのソリューションには予期しない副作用があると言いたいです。アプリがバックグラウンドから返されたときに、電話setPlaybackParamsをかけると、最後に再生されたビデオOnPreparedListenerが強制的VideoViewに繰り返されます。これがバグなのか機能なのかはわかりませんが、そのような動作を回避する方法を見つけました。

private float speed = 0.8f;
private final MediaPlayer.OnInfoListener listener = (mp, what, extra) -> {

    if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
        mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(speed));
        return true;
    }
    return false;
};


videoView.setOnPreparedListener(
                mp -> {
                    mp.setOnInfoListener(listener);
                }
        );

MEDIA_INFO_VIDEO_RENDERING_STARTプレイヤーがすでに開始されている場合にのみ送信されます。

getPlaybackParamsという注釈が付けられていることを強調したいので、新しいオブジェクト@NonNullを作成する必要はありません。PlaybackParams

于 2021-09-15T00:12:17.693 に答える
-3

DicePlayer は、私の Asus Transformer で完璧に動作します。スピードコントロールオンスクリーンディスプレイを備えています。

私は何res/rawであるか分かりません。

于 2012-06-25T23:10:51.667 に答える