【发布时间】:2017-04-06 02:26:46
【问题描述】:
我的问题与此other SO question 有关。我正在尝试通过Capture.captureAudio() 在 iOS 中录制音频。它输出的音频文件可以在计算机上读取,但在 iOS (iPhone 4S) 和 Android 上都无法读取。
ffmpeg -i 产生:
Input #0, caf, from 'myFile.m4a':
Duration: 00:00:07.04, start: 0.000000, bitrate: 37 kb/s
Stream #0:0: Audio: aac (aac / 0x20636161), 16000 Hz, mono, s16, 23 kb/s
如果我通过 Voice Recorder 应用程序使用 iOS 录制文件,我会从 ffmpeg 获得:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Test.m4a':
Metadata:
major_brand : M4A
minor_version : 0
compatible_brands: M4A mp42isom
creation_time : 2017-04-03 19:01:32
date : 2017-04-03T21:01:09+0200
encoder : com.apple.VoiceMemos (iPhone OS 7.1.2)
Duration: 00:00:05.15, start: 0.000000, bitrate: 67 kb/s
Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, s16, 64 kb/s
Metadata:
creation_time : 2017-04-03 19:01:32
handler_name : Core Media Audio
此文件可在 Android 和 iOS 上播放。
虽然乍一看 mime 类型似乎被限制为“amr”
/**
* Gets the available recording MimeTypes
*/
public String [] getAvailableRecordingMimeTypes(){
return new String[]{"audio/amr"};
}
看一眼native code 会发现在 iOS 上它记录为“MPEG4AAC”16kHz。
为什么我得到一个无法在手机上播放的caf文件?
任何帮助表示赞赏!
【问题讨论】:
标签: ios codenameone audio-recording