DOUAudioStreamer icon indicating copy to clipboard operation
DOUAudioStreamer copied to clipboard

网络差,播放时,如果没有缓冲完成,直接快进,需要等全部缓冲完成才可以播放

Open ghost opened this issue 9 years ago • 12 comments

网络差,播放时,如果没有缓冲完成,直接快进,需要等全部缓冲完成才可以播放 我音频30M,需要30M全部缓冲,这个肯定不行 能不能直接从当前设置的时间开始缓冲,播放

ghost avatar Jul 20 '16 03:07 ghost

少一个seek to time啊

ghost avatar Jul 20 '16 13:07 ghost

这个我也碰到了,内部缓冲多少播放的判断很迷,自己找找应该可改好

snowimba avatar Aug 02 '16 09:08 snowimba

@snowimba 你要改好了,告诉我,阿里嘎多

ghost avatar Aug 04 '16 14:08 ghost

设置currentTime即可

icharlie2014 avatar Aug 06 '16 16:08 icharlie2014

@icharlie2014 我没说不能设置,设置了,会缓存完整个音频文件,再开始播放 网速要是差的话,很明显

ghost avatar Aug 08 '16 07:08 ghost

http://7xqzul.com1.z0.glb.clouddn.com/58E43095-53B3-4AEA-BA37-ADB6B20AF388.png DOUAudioDecoder.m 这个文件下面的345-367行就是判断是否是缓存状态的,只要改这里就行了,我没看懂他一堆数值的计算,所以最简单的方法就是把这里注释掉,然后在外面自己判断是否是缓存状态就行。我尝试了注释后自己写判断也一样可行。不会再有那种要完全缓存完才能播放的问题了~希望可以帮助到你~!

snowimba avatar Aug 09 '16 07:08 snowimba

@snowimba 非常感谢,我赶紧改了试试。

ghost avatar Aug 09 '16 07:08 ghost

如果你注释了这里就必须要自己在外面写缓存逻辑,暂停播放和开始播放,要不会有问题。如果你自己改好了他的这个逻辑,也希望能告诉下我~谢谢,一堆数字计算实在看的头大······

snowimba avatar Aug 09 '16 08:08 snowimba

@snowimba 我能说我现在弄了两套,https://github.com/tumtumtum/StreamingKit 这个还行,还算比较稳定 就是没找见缓存在哪儿

ghost avatar Aug 09 '16 08:08 ghost

这个我也看了,不过我们这边需求是必须要缓存~~~

snowimba avatar Aug 09 '16 08:08 snowimba

@snowimba 我们也要加,暂时先延后了,没那么重要。我得先找见怎么清缓存,不然缓存大的吓人

ghost avatar Aug 09 '16 08:08 ghost

seek to progress: 0.457143 milliseconds:150597

[DOUAudioDecoder seekToTime:] 计算的结果: frames:6641327.700000 packets:5765.041406 packetNumebr:5765

[DOUAudioDecoder decodeOnce] 计算的结果: dataOffset = 130 expectedDataLength = 5,271,013 receivedDataLength = 199,972 packetNumber = 5,798 bytesPerPacket = 1,052 packetDataOffset = 6,099,496

packetDataOffset > expectedDataLength

造成seek异常,是否是_decodingContext.inputFormat.mSampleRate和mFramesPerPacket的问题,导致计算packetNumber错误?@lembacon
重现音频:http://file.xrkcdn.com/group1_M00_00_16_wKgerFYKUaOATxylAFBt5TLplxI994.mp3

weiminghuaa avatar May 16 '17 11:05 weiminghuaa