21

現在市場に出回っている典型的なオーディオブック プレーヤーのように、可変速度再生 (1.0x、1.25x、1.5x) のオーディオ プレーヤーを実装しようとしています。Google の Exoplayer ライブラリをオーディオ プレーヤー ライブラリとして使用したいのですが、可変速再生をサポートしていないようです。これを実装する方法、またはこれをサポートする拡張機能に関するアイデアはありますか?

4

6 に答える 6

6

Kotlin 拡張ソリューション

Kotlin のアプリ全体でこれに簡単にアクセスして確実に設定できるようにします

// To set
player.playbackSpeed = 2f

var SimpleExoPlayer.playbackSpeed: Float
    get() = playbackParameters?.speed ?: 1f
    set(speed) {
        val pitch = playbackParameters?.pitch ?: 1f
        playbackParameters = PlaybackParameters(speed, pitch)
    }
于 2020-05-10T22:26:50.780 に答える
4

必要なのはhttps://github.com/waywardgeek/sonic/blob/master/Sonic.javaだけです

MediaCodecAudioTrackRenderer.javaを見ると、メソッドprocessOutputBufferで ExoPlayerから (MediaCodec によってデコードされた) 出力バッファを取得し、 AudioTrackに送信する前にSonic.javaを介して適切に処理できます

次のドキュメントでは、libsonic の使用方法について説明しています https://github.com/waywardgeek/sonic/blob/master/doc/index.md

于 2015-08-13T14:41:17.653 に答える
0

Exoplayer版で2.14.0

floatこのように値を直接渡します。

simpleExoPlayer?.setPlaybackSpeed(1.0f)
于 2021-07-08T14:22:03.313 に答える