PhoneGap媒体API提供了一种可以在android上跨平台录制音频的机制,但是音频质量非常糟糕——8 kHz采样率,可能还有一些高度有损的编解码器。我从这个问题中了解到,使用java代码可以获得更高质量的音频录制。
有谁知道Android的PhoneGap插件允许更高质量的音频录制?
对于任何感兴趣的人来说,我们所做的是放弃对Android 2.3以下版本的支持,并自己修改Cordova原生代码。
如果你使用的是Cordova 3+,我用这里的代码更改分叉项目
对于以前的版本,只需修改AudioPlayer.java(这是来自Cordova 2.9)
// support only 2.3.3+ to be able to record AAC with 44100 audio sampling
this.recorder.setAudioSamplingRate(44100);
this.recorder.setAudioEncodingBitRate(96000);
this.recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
this.recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
//this.recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);// THREE_GPP);
//this.recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);// //AMR_NB);
不幸的是你必须自己编写插件。
这里是当前插件列表:https://github.com/phonegap/phonegap-plugins/tree/master/Android
对于IOS,有一个较旧的音频记录。也许你可以在那里看看:
https://github.com/phonegap/phonegap-plugins/tree/master/iOS/AudioRecord创建一个插件并不是什么大事。下面是实际记录的一些代码:
http://www.androiddevblog.net/android/android-audio-recording-part-2 http://developer.android.com/reference/android/media/AudioRecord.html