Gan*_*cus 6 iphone audio avfoundation android-mediaplayer
我用我的iOS应用程序录制了一些音频文件,然后通过我的Web服务器将其发送到Android应用程序.Android应用程序成功获取文件,但是当我使用MediaPlayer类尝试播放它时,它会在行上报告错误"无法创建媒体播放器".mediaplayer.setDataSource(androidFilePath);
仅举此一点,iOS设备可以读取随应用程序发送的文件.经过一些研究后,我发现它可能是一个编码问题.但我在SO上尝试了很多录音设置,但都没有奏效.这是我用来录制音频文件的代码:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryRecord error:nil];
NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] initWithCapacity:10];
[recordSettings NSNumber numberWithInt: kAudioFormatMPEG4AAC] forKey: AVFormatIDKey];
[recordSettings setObject:[NSNumber numberWithFloat:16000.0] forKey: AVSampleRateKey];
[recordSettings setObject:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
[recordSettings setObject:[NSNumber numberWithInt: AVAudioQualityMin] forKey: AVEncoderAudioQualityKey];
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = paths[0];
self.audioURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/recordTest.caf", basePath]];
NSError *error = nil;
self.audioRecorder = [[ AVAudioRecorder alloc] initWithURL:self.audioURL settings:recordSettings error:&error];
if ([self.audioRecorder recordForDuration:60] == YES){
[self.audioRecorder record];
}
Run Code Online (Sandbox Code Playgroud)
您能告诉我,我必须做出哪些更改才能让Android设备读取这些音频文件?
尝试从代码中删除 AVEncoderAudioQualityKey 并检查这是否可以解决问题。另外,请检查您正在检查的 Android 设备是否能够正常播放其他 aac 文件。
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |