关于录音播放的一些问题记录

问题:将网络录音播放器,也能播放本地录音

解决1:单独为本地录音创建开始录音,更新进度条,暂停录音等方法

解决

收获,跟ui有关系的都要放到handler中区执行,因为那才是在主线程中,不让无效

mediaPlayer.getDuration()与mediaPlayer.getCurrentPosition()这两个值可能会不匹配,,

解决办法,,mediaPlayer.getCurrentPosition()/100,区百位数比较

问题:网络音乐断点播放,时间和进度条不一致怎么办


原因,,下载器是根据MP3文件的头文件信息来匹配时间

而我们的音频格式是amr

要找到其中区别

amr 网络

01-17 11:15:29.387  14533-14533/com.oa.main I/音乐长度 mp3﹕ 600
01-17 11:15:30.389  14533-14533/com.oa.main I/音乐长度 mp3﹕ 1620
01-17 11:15:31.397  14533-14533/com.oa.main I/音乐长度 mp3﹕ 2640
01-17 11:15:32.401  14533-14533/com.oa.main I/音乐长度 mp3﹕ 3620
01-17 11:15:33.403  14533-14533/com.oa.main I/音乐长度 mp3﹕ 4640
01-17 11:31:32.161  15692-15692/com.oa.main I/音乐长度 mp3﹕ 80 5180220
01-17 11:31:33.860  15692-15692/com.oa.main I/音乐长度 mp3﹕ 440 5180220
01-17 11:31:34.869  15692-15692/com.oa.main I/音乐长度 mp3﹕ 1540 5180220
01-17 11:31:35.893  15692-15692/com.oa.main I/音乐长度 mp3﹕ 2560 5180220
01-17 11:31:36.896  15692-15692/com.oa.main I/音乐长度 mp3﹕ 3580 5180220
01-17 11:31:37.910  15692-15692/com.oa.main I/音乐长度 mp3﹕ 4600 5180220

5180220/1000/60=实际时间 86.33

amr本地

01-17 11:21:55.840  15158-15158/com.oa.main I/音乐长度 mp3﹕ 0
01-17 11:21:56.849  15158-15158/com.oa.main I/音乐长度 mp3﹕ 1020
01-17 11:21:57.863  15158-15158/com.oa.main I/音乐长度 mp3﹕ 2040
01-17 11:21:58.878  15158-15158/com.oa.main I/音乐长度 mp3﹕ 2300

mp3网络

01-17 11:30:24.527  15692-15692/com.oa.main I/音乐长度 mp3﹕ 0 9369
01-17 11:30:25.529  15692-15692/com.oa.main I/音乐长度 mp3﹕ 810 235128
01-17 11:30:26.536  15692-15692/com.oa.main I/音乐长度 mp3﹕ 1855 235128
01-17 11:30:27.538  15692-15692/com.oa.main I/音乐长度 mp3﹕ 2900 235128
01-17 11:30:28.542  15692-15692/com.oa.main I/音乐长度 mp3﹕ 3944 235128

235128/1000/60=实际时间 3.9

mp3 本地

01-17 11:19:04.307  14533-14533/com.oa.main I/音乐长度 mp3﹕ 1045
01-17 11:19:05.321  14533-14533/com.oa.main I/音乐长度 mp3﹕ 2090
01-17 11:19:08.344  14533-14533/com.oa.main I/音乐长度 mp3﹕ 4963
01-17 11:19:10.369  14533-14533/com.oa.main I/音乐长度 mp3﹕ 7053
01-17 11:19:11.374  14533-14533/com.oa.main I/音乐长度 mp3﹕ 7837
01-17 11:20:28.492  14533-14533/com.oa.main I/音乐长度 mp3﹕ 7837

问题解决 长度问题 不需要216   MEDIALENGHT_IN_SECONDS =216;//标准品质mp3一秒声音长度216

mp3和amr有区别

但是这个问题依然存在,,哎

java.io.IOException: setDataSourceFD failed.: status=0x80000000
            at android.media.MediaPlayer.setDataSource(Native Method)
            at android.media.MediaPlayer.setDataSource(MediaPlayer.java:984)
            at com.oa.main.common.record.StreamingMediaPlayer.createMediaPlayer(StreamingMediaPlayer.java:218)
            at com.oa.main.common.record.StreamingMediaPlayer.startMediaPlayer(StreamingMediaPlayer.java:195)
            at com.oa.main.common.record.StreamingMediaPlayer.access$300(StreamingMediaPlayer.java:30)
            at com.oa.main.common.record.StreamingMediaPlayer$5.run(StreamingMediaPlayer.java:177)
            at android.os.Handler.handleCallback(Handler.java:615)
            at android.os.Handler.dispatchMessage(Handler.java:92)

这个是读取头文件失败,MP3文件播放正常,amr文件播放出现这个错误

这个可能是个解决办法,但是我无法利用

http://stackoverflow.com/questions/9657280/mediaplayer-setdatasource-causes-ioexception-for-valid-file


到最后还是没有解决这个问题

无法做到变下边播


这是MP3正常播放 可以边下边播

113809_3Y4Z_1428946.jpg

这是amr无法变下边播,下载完后播放

113924_LlyE_1428946.jpg


转载于:https://my.oschina.net/zhulunjun/blog/193998

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值