我的iOS应用程序使用WebRTC
进行视频通话。
我想播放音频,视频文件,所以我使用了AVPlayer
,AVPlayerViewController
。
我尝试了两种方法来执行此操作,每种解决方案都有如下不同的问题
解决方案1
拨打WebRTC
时,我将应用程序的音频类别切换为AVAudioSessionCategoryPlayAndRecord
,将音频模式切换为AVAudioSessionModeVideoChat
。
当我要播放媒体文件时,在执行播放之前,我将音频类别切换为AVAudioSessionCategoryPlayback
,将音频模式切换为AVAudioSessionModeDefault
。媒体播放完毕后,我将音频类别切换为AVAudioSessionCategoryPlayAndRecord
,将音频模式切换为AVAudioSessionModeVideoChat
=>此解决方案的问题: 媒体播放完毕后,WebRTC本地媒体流的音频源消失,其他客户端不再听到该客户端的音频
解决方案2
拨打WebRTC
时,我将应用程序的音频类别切换为AVAudioSessionCategoryMultiRoute
,将音频模式切换为AVAudioSessionModeDefault
。
当我要播放媒体文件时,我不会更改音频类别和模式(保持使用AVAudioSessionCategoryMultiRoute
和AVAudioSessionModeDefault
)
=>此解决方案的问题: 媒体文件的音频音量很低,使用此类别时某些设备听不到WebRTC音频流
在WebRTC通话期间播放媒体文件的最佳方法是什么?