我正在尝试在Air for iPad应用程序的StageWebView
中播放本机视频,该应用程序可以播放声音并需要用户通过麦克风进行交互
一切似乎都正常,但当我开始播放视频时,声音和麦克风都停止了。如果我处理了StageWebView
,声音和麦克风会恢复,但只有在15秒后(并且我需要声音和麦克风至少在StageWebView
释放后立即工作)。
我试着在iOS5 iPad1和iOS6 iPad2上使用Air 3.4、3.5和3.6测试版完成这项工作。我试着切换iPad的静音按钮,还试着将SoundMixer.audioPlaybackMode
更改为媒体和环境。但它没有起作用,我被卡住了。
这是我处理麦克风的代码:
var microphone:Microphone = Microphone.getMicrophone();
microphone.addEventListener(SampleDataEvent.SAMPLE_DATA, __micHandler);
private function micHandler(event : SampleDataEvent) : void {
trace("mic is working !");
}
对于音频:
_snd = new Sound();
_snd.load(new URLRequest(path));
_sndChannel = _snd.play();
private function soundStopHandler(event : MouseEvent) : void {
if(_sndChannel) _sndChannel.stop();
}
对于视频播放器:
_webview = new StageWebView();
_webview.stage = stage;
_webview.viewPort = new Rectangle(10, 120, 480, 300);
_webview.loadURL(path);
private function videoStopHandler(event : MouseEvent) : void {
if(_webview) {
_webview.dispose();
_webview = null;
}
}
在我之前有人面临过这个问题吗?我有没有忘记什么或做得不对?
也许这个问题与iOS系统有关。
就我所知,从iOS的角度来看,这是不可能的。当你开始录制会话时,除了录制不会占用它。一旦你播放和录制会话,会话中必须解决。录制和播放会话时,该会话不能同时被占用。
参考苹果公司的文档:音频会话
AVAudioSessionCategoryPlayAndRecord或等效的kAudioSessionCategory_PlayAndRecord--将此类别用于输入和输出音频的应用程序。输入和输出不需要同时发生,但可以在需要时发生。这是用于音频聊天应用程序的类别。
在AIR中,如果编码没有问题。很可能是这个原因。