ksvc / KSYMediaPlayer_iOS

金山云iOS播放SDK(KSYUN Live Streaming player SDK),支持RTMP HTTP-FLV HLS 协议(supporting RTMP HTTP-FLV HLS protocol),直播延时2-3秒(Living delay 2 or 3 seconds)
http://v.ksyun.com/
Apache License 2.0
561 stars 143 forks source link

RTMP視訊沒聲音 #69

Open BeStronger1983 opened 6 years ago

BeStronger1983 commented 6 years ago

使用2.9.2版本的KSYMoviePlayerController播放RTMP視訊,沒有聲音。 有在[_player prepareToPlay]之前加了

[_player setShouldMute:NO]
[_player setVolume:2.0f rigthVolume:2.0f]

但還是沒有聲音。

有監聽MPMoviePlayerFirstAudioFrameRenderedNotification事件,但沒有收到。

確定這個RTMP視訊源是有聲音的,因為用Flash播是有聲音的。

mayudong1 commented 6 years ago

插上耳机听听有没有声音,以前遇到过声音左右声道是反相的,导致外放没有声音

BeStronger1983 commented 6 years ago

後來發現是要接MPMoviePlayerSuggestReloadNotification的消息通知,然後再用mode MPMovieReloadMode_Accurate來reload,就會有聲音了。

「为提升开播速度,播放器在查找文件格式时只检查少量的数据, 如果音视频数据交织情况较差,会导致播放器认为当前码流中只含有视频或者音频数据; 但是在播放过程中,发现实际上存在着未检测到的音频或者视频流,此时播放器会发送此通知」

「当用户监听到此通知时,请务必调用(void)reload:(NSURL *)aUrl flush:(bool)flush mode:(MPMovieReloadMode)mode方法,并将mode模式设置为MPMovieReloadMode_Accurate来重新加载码流」