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