Phonegap录音和播放同时进行

Posted

技术标签:

【中文标题】Phonegap录音和播放同时进行【英文标题】:Phonegap record and playback simultaneously 【发布时间】:2012-08-08 08:39:29 【问题描述】:

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

现在我知道在 Objective-C 中您可以将音频类别设置为“AVAudiosessionCategoryPlayAndRecord”,但由于这是 Phonegap 而不是普通的原生 Objective-C 应用程序,我不确定它是否可以工作,甚至在哪里可以工作把它放在我认为它需要在 phonegap 核心文件中的某个地方>

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

【问题讨论】:

Record and play simultaneously on iOS (Phonegap build)的可能重复 【参考方案1】:

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

为了调整它,我修改了 CDVSound.m,将第 482 行更改为

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

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

【讨论】:

有这方面的消息吗?您是否设法用更好的方法(而不是修改 phonegap)来解决它? 您始终可以从当前插件的子类开始制作自己的插件。 @cherouvim 由于 CDVAudio 的 avSession 属性是公开的,您可以在 application:didFinishLaunchingWithOptions: 中调配方法 startPlayingAudio:,使应用首先调用原始代码,然后调用您的 setCategory。但是里维拉的解决方案更清洁恕我直言【参考方案2】:

这可以通过使用自定义的 Objective C 插件来解决,该插件将 AVAudioSession 单例实例的类别设置为 AVAudioSessionCategoryPlayAndRecord

但是,Cordova 媒体插件中存在一个使事情复杂化的错误,如果您可以接受先开始录制,然后开始播放媒体,则可以解决此问题。

如果没有,我已经解决了这个问题,并在此处发布了答案,您可以在此处找到更多详细信息:

Record and play simultaneously on iOS (Phonegap build)

【讨论】:

以上是关于Phonegap录音和播放同时进行的主要内容,如果未能解决你的问题,请参考以下文章

当 iTunes 从网络链接启动时,Phonegap 媒体对象停止播放

PhoneGap/Cordova iOS 播放声音禁用麦克风

PhoneGap MediaCapture 插件不起作用

在 Android 中使用 JWplayer 在 Phonegap 中进行流式视频播放

Phonegap 插件延迟初始化

我可以使用 Phonegap Build 在 Phonegap 中播放视频吗