android 音频播放速度,Android中如何实现播放音频设置不同的播放速率(MediaPlayer SoundPool AudioTrack OpenSL ES)...

目前我在项目中需要对播放的音频设置不同的速率(0.8、1、1.3倍),存在如下的疑惑:

1.使用MediaPlayer,这个类是使用的最广泛的,但不提供相应的设置速率的方法。

2.SoundPool,适合播放游戏中的急促 短暂的音效,只能播放大概10秒的音频,且不提供读完音频的回调方法。

3.AudioTrack,这个类可以进行速率的设置,但只能播放已经解码的PCM文件流,如果是文件的话只支持wav格式音频,目前项目中的文件都是MP3格式的,需要转换以及解码。

4.OpenSL ES是通过JNI和NDK进行底层实现的,自己去实现和集成并封装到自己的项目中,难度会比较大,但这个方法可能也是最彻底的。

个人认为有两种方法:

1.最笨的方法,增加两套对应速率(0.8、1.3倍)的音频文件,一是会增加相关部门的制作资源的工作量。二是增加用户的存储控件。

2.通过OPenSL ES的集成到项目中去,如果是这样的话就需要:一是把JNI和NDK打通,二是封装集成到现有的项目中,之前的MediaPlayer不用,上一句和下一句的切换以及其他的功能需要重新进行封装。

ed1941043116

ed1941043116

上图为某APP的设置速率的效果图。特此通过CSDN来向各位大神请教如何实现,给我加以点拨,不胜感激。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值