2015-08-30 1 views
6

Я записываю некоторые аудиофайлы с моим приложением iOS, и я отправляю его в приложение для Android через мой веб-сервер. Приложение Android успешно получает файл, но когда я использую класс MediaPlayer для его воспроизведения, он сообщает об ошибке «Невозможно создать медиаплеер» в строке mediaplayer.setDataSource(androidFilePath); Как раз упомянуть, устройства iOS могут читать файлы, отправленные с помощью приложение. После некоторых исследований я обнаружил, что это может быть проблема с кодировкой. Но я пробовал множество настроек записи, представленных здесь на SO, но никто не работал. Вот код, я использую для записи аудио файла:Android не может читать записанные аудиофайлы iPhone

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]; 
    } 

Не могли бы вы сказать мне, какие изменения я должен сделать так, чтобы Android устройств могут читать эти звуковые файлы?

ответ

0

Попробуйте удалить AVEncoderAudioQualityKey из кода и проверить, устраняет ли это проблему. Также проверьте, поддерживает ли устройство Android, с которым вы проверяете, правильно ли воспроизводить другие файлы aac или нет.

3

Я бы, вероятно, попробовал .aac или .mp4 вместо .caf.

+0

Я не могу поверить, что это так просто. Большое спасибо. – Gannicus

+0

На самом деле теперь он работает на большинстве устройств Android, но не у всех. Есть ли другой способ делать то, что я хочу? – Gannicus

0

Нет, вы не можете указать все используемые форматы Check here.

Вам придется конвертировать в AAC или WAV, прежде чем вы можете использовать его