其他分享
首页 > 其他分享> > Android Tempo /播放速度变化

Android Tempo /播放速度变化

作者:互联网

我正在创建一个Android应用程序,需要实时更改播放速度/速度.我在互联网上搜索并看到了很多解决方案,包括
Tutorials for OpenSL ES for Android
How to change audio tempo and pitch individuality using ffmpeg?

因为我相对较新的开发和android其中一些只是我的leauge.

其中许多例子都讨论Soundpool,但这个api不能用于大文件.

通过API和类查找后,我发现方法setPlaybackRate(int sampleRateInHz)
在AudioTrack类下.
http://developer.android.com/reference/android/media/AudioTrack.html#setPlaybackRate(int)

然而,在所有这些例子中,他们都没有提到这一点.我错过了什么,可以用吗?

任何帮助深表感谢

解决方法:

确实可以使用setPlaybackRate(),但它可能不是你想要的.

假设您有一个44100的音频流.您可以使用此功能将播放设置为22050 Hz,这意味着样本将以一半的速率馈送到音频输出,这确实会减慢音乐速度.缺点是音频的频率也会下降到一半,因为样本以一半的速率馈送.

目前还没有直接的Android API来进行时间延长.这些算法在数学上是非常繁重的,即使你可以用Java编写它们,性能也会很糟糕.

最好的方法是使用JNI在C中查找实现,这可能包括像ffmpeg这样的库.

标签:android,playback,audiotrack
来源: https://codeday.me/bug/20190624/1279756.html