Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安卓可以';t读取iPhone录制的音频文件_Iphone_Audio_Avfoundation_Android Mediaplayer - Fatal编程技术网

安卓可以';t读取iPhone录制的音频文件

安卓可以';t读取iPhone录制的音频文件,iphone,audio,avfoundation,android-mediaplayer,Iphone,Audio,Avfoundation,Android Mediaplayer,我用iOS应用程序录制了一些音频文件,并通过web服务器将其发送到Android应用程序。 Android应用程序成功获取了该文件,但当我使用MediaPlayer类尝试播放该文件时,它在MediaPlayer.setDataSource(androidFilePath)行报告了一个错误“无法创建媒体播放器” 只需提及,iOS设备可以读取应用程序发送的文件。 经过一些研究,我发现这可能是一个编码问题。但我尝试了这里提供的许多录音设置,但都不起作用。以下是我用来录制音频文件的代码: AVAudio

我用iOS应用程序录制了一些音频文件,并通过web服务器将其发送到Android应用程序。 Android应用程序成功获取了该文件,但当我使用MediaPlayer类尝试播放该文件时,它在
MediaPlayer.setDataSource(androidFilePath)行报告了一个错误“无法创建媒体播放器”
只需提及,iOS设备可以读取应用程序发送的文件。
经过一些研究,我发现这可能是一个编码问题。但我尝试了这里提供的许多录音设置,但都不起作用。以下是我用来录制音频文件的代码:

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设备能够读取这些音频文件,我需要做哪些更改吗?

我可能会尝试.aac或.mp4而不是.caf

尝试从代码中删除AVEncoderAudioQualityKey,并检查这是否解决了问题。还要检查您正在检查的android设备是否能够正确播放其他aac文件

不,你不能说明所有使用的格式


您必须先转换为AAC或WAV,然后才能使用它

我不敢相信它会这么简单。非常感谢。事实上,它现在可以在大多数Android设备上使用,但不是所有设备都可以。有没有其他方法可以满足我的要求?