更新
简短问题:
如何在Android中执行音频 * 时间延长 *和音高转换?
如何慢 mo 视频?
详细问题:
我想做什么?
我正在尝试在视频文件中连同音频执行 ramp slow mo ,并且必须保存已处理的视频。
什么是斜坡缓慢或我想做什么?
http://www.youtube.com/watch?v=BJ3_xMGzauk
慢动作效果必须以英文字母“U”的形式进行。
正常慢速莫:“| __ |”(线性 - 就像将视频减慢到2倍或4倍)
Ramp Slow Mo:“U”(抛物线)
我已成功为IOS设备完成此应用程序。
我是如何实现IOS的缓慢缓慢的?
分离的音频和视频。
对于视频,我进行了动态时间拉伸以实现抛物线效果。
for(i=0;i=around 10 intervals;i++)
{
do time stretching
}
对于音频,随着时间的推移,我也像你的管道链接一样进行音高变换。
for(i=0;i=around 10 intervals;i++)
{
do time stretching
do Pitch shifting
}
问题:
如何在Andorid中实现此效果? Android SDK 中的默认API 是否可以缓慢执行(音频/视频时间拉伸+ 音频音高移)?
作为第三方软件包的一部分,对于IOS,我使用 Dirac 进行音频时间延长和音高转换。但不幸的是,DIRAC不适用于Android平台。
答案 0 :(得分:1)
我不能谈论视频的最佳解决方案(没有根据您提供的特殊要求实现您自己的自定义视图),但我对音频播放有一些意见。 Android支持允许播放速率控制的示例播放类:
http://developer.android.com/reference/android/media/SoundPool.html
更改采样播放率是一回事;你想要执行听起来像独立时间拉伸和音高变化的声音。这是基于FFT的算法类的域,称为相位声码器。关于音频,我首先要看看Java中的库以获得这样的效果。如果你想自己动手,这个答案应该让你有一个良好的开端: