AndroidのMediaPlayerのオーディオ速再生、再生速度を調整します

このリンク:AndroidのMediaPlayerのスピード再生は、再生速度を調整します

今、市場は、このような再生速度などのオーディオおよびビデオアプリケーションの高速再生機能の多くがそうで0.5,1.5,2倍に調整されています。

AndroidのAPI 23から(アンドロイドM)を起動し、MediaPlayerのサポートは、再生速度を調整します。
使用される方法は、着信クラス選手の代表PlaybackParams属性、setPlaybackParamsあります。

この記事では、再生速度を調整するためのMediaPlayerを使用する方法について説明します。

MediaPlayer.setPlaybackParams説明

再生速度はPlaybackParamsオブジェクトを設定して、このオブジェクトはsetPlaybackParamsを通過しました。

setPlaybackParamsはネイティブメソッドです。
(準備前)MediaPlayerの準備ができていない場合は、このメソッドを呼び出すと、MediaPlayerの状態を変更しません。
メディア・プレイヤーが正常に準備した後、速度が0に設定されている場合、休止メソッドを呼び出すのと等価、速度が0に開始メソッドを呼び出すのと等価に設定されていない場合。

例外

MediaPlayerのは初期化されていないか、解放された、またはそれがアイドル状態の終了コールsetPlaybackParams方法である場合はIllegalStateExceptionをスローします。

入ってくるPlaybackParamsがサポートされていない場合は、IllegalArgumentExceptionをスローします。

速度が0未満の場合は、java.lang.IllegalArgumentExceptionが例外がスローされます。

実施例MediaPlayer.setPlaybackParams方法

再生速度を設定します。まず、現在のシステムのバージョンを確認します。

private boolean setPlaySpeed(float speed) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        PlaybackParams params = mediaPlayer.getPlaybackParams();
        params.setSpeed(speed);
        mediaPlayer.setPlaybackParams(params);
        return true;
    }
    return false;
}

getPlaybackParamsは、MediaPlayerの現在のPlaybackParamsオブジェクトを取得することができます。
この方法はまた、キャッチ、組み合わせリターン成功率が提供されているかどうかを決定するブール値を試すために結合することができます。

private boolean setPlaySpeed(float speed) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        try {
            PlaybackParams params = mediaPlayer.getPlaybackParams();
            params.setSpeed(speed);
            mediaPlayer.setPlaybackParams(params);
            return true;
        } catch (Exception e) {
            Log.e(TAG, "setPlaySpeed: ", e);
            return false;
        }
    }
    return false;
}

リファレンスコードhttps://github.com/RustFisher/android-MediaPlayer

速度値はPlaybackParamsが含まれてい

MediaPlayerの再生速度の調整は、我々はPlaybackParamsオブジェクトを使用します。AudioTrackは、このクラスを使用します。

PlaybackParamsは、再生時間の属性の一部が含まれています。例えば、速度が高速です。

PlaybackParams.setSpeed(フロートスピード)

受信速度オーバライド値。これは、スピードオーバー、現在の設定をマークします。

public PlaybackParams setSpeed(float speed) {
    mSpeed = speed;
    mSet |= SET_SPEED;
    return this;
}

PlaybackParams.getSpeed()

取得速度は、値を設定します。あなたはIllegalStateExceptionが例外をスローする前に速度をオフに設定しない場合。

public float getSpeed() {
    if ((mSet & SET_SPEED) == 0) {
        throw new IllegalStateException("speed not set");
    }
    return mSpeed;
}

おすすめ

転載: www.cnblogs.com/rustfisher/p/11587086.html