2012-08-08 68 views
0

我目前正在Phonegap中开发iPhone/Android应用程序,并希望在播放另一首曲目时录制音频。Phonegap同时录制和播放

现在我知道在Objective-C中,您可以将音频类别设置为“AVAudioSessionCategoryPlayAndRecord”,但由于这是Phonegap,而不是普通的本机Objective-C应用程序,我不确定它是否可以工作,把它作为我认为它需要在某处的电话核心文件>

有没有人有任何经验和/或想法?

+0

可能重复[记录并在iOS上同时播放(PhoneGap的版本)]( http://stackoverflow.com/questions/23245997/record-and-play-simultaneously-on-ios-phonegap-build) – 2014-08-04 14:23:57

回答

1

如果其他人想知道这个答案,我设法通过重新编译Cordova/Phonegap(1.7.0但2.0应该类似)来调整这个问题。

调整它我修改CDVSound.m,改变线482

[self.avSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; 

,并重新编译,然后在我的项目中使用。

+0

关于这方面的任何消息?你有没有设法用更好的方法解决它(而不是修改phonegap)? – cherouvim 2014-05-28 13:31:35

+0

您始终可以通过从当前子类的子类开始创建自己的插件。 – Rivera 2014-05-29 00:47:34

+0

@cherouvim因为CDVAudio的avSession属性是公共的,所以你可以在'application:didFinishLaunchingWithOptions:'中调试'startPlayingAudio:'方法让应用首先调用原始代码,然后调用你的'setCategory'。但里维拉的解决方案更清洁恕我直言 – 2014-05-29 21:35:27

1

这可以通过使用自定义目标C插件,用来设置AVAudioSession单一实例的类别AVAudioSessionCategoryPlayAndRecord来解决。

但是,Cordova Media Plugin中存在一个错误,它使事情变得复杂,如果您可以先开始录制,然后开始播放媒体,那么这些错误可以解决。

如果没有,我已经解决了这一问题,并张贴在这里的答案,在这里你可以找到更多的细节:中

Record and play simultaneously on iOS (Phonegap build)