我正在使用Flash CS 5.5使用Adobe Air 2.6开发iPhone应用程序。我正在尝试捕获麦克风输入,然后播放mp3文件。现在的问题是,一旦我用SampleDataEvent捕获了麦克风数据。SAMPLE_DATA事件时,播放机制的音量似乎显著降低。
复制:
- 播放(远程)mp3文件,音量正常
- 获取麦克风并添加事件侦听器(请参阅下面的代码),侦听器函数甚至不需要任何代码就可以发生此问题
-
与步骤1(播放远程mp3)相同,音量非常低。
// add the event listener _microphone.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData); private function onSampleData(event:SampleDataEvent):void { //while(event.data.bytesAvailable > 0) { // _buffer.writeFloat(event.data.readFloat()); //} } // call this before playing back the mp3 _microphone.removeEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
当使用Flash IDE进行测试时,问题不会出现,并且一切正常。在iPhone 3GS和iOS 4.3.3上测试。
如果有人经历过这个问题,我将非常感谢你的见解。
更新:
我认为这本身不是AIR的问题。在使用iOS麦克风后,整个应用程序几乎会静音,在虚拟键盘上打字也是如此(这不是来自AIR)。这对我没有帮助,但也许有人知道如何关闭应用程序中的麦克风,让扬声器音量恢复正常?
更新2:
在这里,您可以看到Adobe的运行示例http://tv.adobe.com/watch/adc-presents/developing-for-ios-with-air-for-mobile-26/请注意,iphone在现场演示中的扬声器音量也很低。因此,这一定是一个相当大的错误,使iPhone上的麦克风无法使用。
下载并使用AIR 3 sdk
然后设置
SoundMixer.useSpeakerphoneForVoice = true;
SoundMixer.audioPlaybackMode = AudioPlaybackMode.MEDIA;
并且您的问题应该得到解决