我现在要实现一个录歌曲的功能.
思路是
1、一个线程负责使用AudioRecord负责录制
2、一个线程使用NDK负责解码伴奏文件
3、一个线程负责使用解码的数据播放伴奏
最终使用录音和伴奏的两个PCM进行合并
现在的功能已经实现了。不过还有点问题
现象: 录制2分钟的音频,录音文件只有1分50秒。
原因分析: NDK解码一帧数据(60K wma文件)要100毫秒左右,个人分析是由于解码线程调用NDK解码耗时时间过长导致录音线程卡顿,而卡的过程录音线程没干活。
因为在测试中使用mp3文件进行解码一帧(2K-4K )需要0-1毫秒。此时的录音线程是正常工作的。不会出现卡的情况。
不知道大家有没有遇到类似的问题。或者能够给提供下解决方法。(目前我能想到的就是将解码线程去掉。直接使用mediaplayer播放伴奏。但是默认mediaplayer不支持wma文件的解码)