【发布时间】:2015-04-24 13:46:10
【问题描述】:
我们在将 .m4a 文件从 android 发送到 iOS 时遇到问题。
似乎文件已正确发送,但是当我们尝试在 iOS 中重现该文件时,它显示持续时间为 00:00。
这是来自 android MediaRecorder 配置的一些代码:
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
mediaRecorder.setAudioSamplingRate(16000);
mediaRecorder.setAudioChannels(1);
mediaRecorder.setOutputFile(fileRecordingName);
try {
mediaRecorder.prepare();
mediaRecorder.start();
}
catch (Exception e) {
e.printStackTrace();
}
以下是 iOS 配置中的一些代码:
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];
[recordSetting setValue:[NSNumber numberWithFloat:16000.0] forKey:AVSampleRateKey];
[recordSetting setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey];
[recordSetting setValue: [NSNumber numberWithInt: AVAudioQualityMedium] forKey:AVEncoderAudioQualityKey];
有人知道发生了什么吗? 似乎配置是相同的。
【问题讨论】:
-
您确定问题出在录制(您包含的代码)上,而不是在将文件从一台设备发送到另一台设备上吗?
-
我认为这不是问题,我们将其编码为base64并将其作为String发送到服务器,然后服务器将其发送到另一部手机。 Android-android、ios-android 和 ios-ios 都运行良好,唯一失败的情况是 android-ios。
标签: android ios mediarecorder m4a