如何在Android中使用Ramp Slow Mo?

时间:2014-01-06 11:59:42

标签: android video android-2.2-froyo android-video-player android-audiomanager

更新

简短问题:

  1. 如何在Android中执行音频 * 时间延长 *和音高转换

  2. 如何 mo 视频

  3. 详细问题:

    我想做什么?

    我正在尝试在视频文件中连同音频执行 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 
    }
    

    问题

    1. 如何在Andorid中实现此效果? Android SDK 中的默认API 是否可以缓慢执行(音频/视频时间拉伸+ 音频音高移)?

    2. 作为第三方软件包的一部分,对于IOS,我使用 Dirac 进行音频时间延长和音高转换。但不幸的是,DIRAC不适用于Android平台。

1 个答案:

答案 0 :(得分:1)

我不能谈论视频的最佳解决方案(没有根据您提供的特殊要求实现您自己的自定义视图),但我对音频播放有一些意见。 Android支持允许播放速率控制的示例播放类:

http://developer.android.com/reference/android/media/SoundPool.html

更改采样播放率是一回事;你想要执行听起来像独立时间拉伸和音高变化的声音。这是基于FFT的算法类的域,称为相位声码器。关于音频,我首先要看看Java中的库以获得这样的效果。如果你想自己动手,这个答案应该让你有一个良好的开端:

Android: How to shift pitch of output sound (realtime)