我正在为 Android 设备使用 phonegap 开发一个简单的应用程序,其中一项功能是录音。捕捉语音的 fragment 如下 -
function captureAudio() {
navigator.device.capture.captureAudio(captureSuccess, captureError, { limit: 1, duration: 60 });
}
该应用程序在 Samsung Tab 2(Android 版本 4.1.2)和 Samsung Mega(Android 版本 4.2.2)中按预期运行,用户可以录制语音。
我在 Lenovo A 1000(Android 版本 4.1.2)和 Samsung Tab 3 Neo(Android 4.2.2)上部署了相同的应用程序,但默认录音机未打开,我在 logcat 中收到以下错误 -
在 Cordova 3.x 版本中:- android.content.ActivityNotFoundException: 没有找到处理 Intent 的 Activity { act=android.provider.MediaStore.RECORD_SOUND }
在 Cordova 2.8 版本中:
错误代码 3。
如上所述,应用程序在 Android 4.1.2 和 4.2.2 的某些设备上运行良好,但在具有相同版本的某些设备上无法运行。
然后我尝试了本地录音机示例(从 http://krvarma-android-samples.googlecode.com/svn/trunk 下载),它在所有设备上都运行良好。
所以,发现是phonegap的Media插件有问题。
但是,我们可以构建自己的插件来录制语音,但如果可以通过标准插件解决,那就更好了。
有什么帮助吗?
问候 因陀罗比仙
最佳答案
从您链接的代码示例来看,我假设您使用的是 org.apache.cordova.media-capture 插件。我在使用此插件时遇到了同样的问题,并发现如果设备没有默认录音机,它就无法正常工作。
我发现避免这种情况的唯一方法是使用 plugin org.apache.cordova.media,这有点不同,因为您必须自己创建录制 UI。
我也可以在 this question 上重定向您对于此插件的代码示例,它讨论的问题与您的问题相同。
关于android - 某些设备 phonegap 媒体插件中的 Cordova 录音问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24848301/