所以我目前正在开发一个移动应用程序,这个应用程序都是关于非常短的录音,并且我决定用Cordova(而不是Phonegap)来构建它。 不幸的是,今天我一直在与Nexus 5上的实际录音作斗争。
我正在使用cordova media-capture插件,当前运行的代码正是其文档中的代码。
在旧设备上,一切都运行良好。但是在我的Nexus 5上,当我点击按钮录制音频时,即使没有打开录音机,它也会返回错误代码3(没有录制媒体文件)。我认为它可能是新的android的问题,但在模拟器上运行正常。我还认为它可以连接到我在我的设备上找不到任何录音应用程序,所以我安装了一个,但仍然没有。
然后我想也许我做错了什么,我安装了这个应用程序:https://github.com/Icenium/sample-capture和同样的问题。
这里有一些建议来更新Capture java文件,我做过但仍然没有帮助。
有什么想法吗?在这里疯了......
答案 0 :(得分:2)
这是因为默认情况下没有安装应用程序来处理意图(如上所述)。
尝试安装处理该意图的应用程序。例如,我使用了这个:
https://play.google.com/store/apps/details?id=com.brightattic.soundrecorder&hl=en
(请注意,除了证明问题是缺少录音机应用程序之外,我不提供对应用程序的认可。)
答案 1 :(得分:1)
也许尝试在androidmanifest.xml中将targetsdk设置为18而不是19(当然一定要在android sdk manager中安装api 18)。
这应该强制新的kitkat chrome webview以怪癖模式运行,其行为类似于软糖中的webview。
答案 2 :(得分:0)
我遇到了同样的问题,运行adb logcat
非常有用:
W/System.err(22102): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.provider.MediaStore.RECORD_SOUND }
...
D/CordovaLog(22102): file:///android_asset/www/js/index.js: Line 77 : Capture ERROR: {"message":"Canceled.","code":3}
对我来说问题是Nexus 5(android 4.4.2)没有处理Intent,即似乎没有默认的录音机。 在具有默认录音机的设备上,如果该应用程序没有包含RECORD_SOUND的接收器,您可能会看到此错误。