iOS base64转音频文件或AVAudioPlayer播放base64String

2,495 阅读1分钟

    项目需要开发一个功能,文字转换成语音,但是api返回的语音文件是base64字符串,尝试将base64 string转成mp3或别的类型的音频文件,网上找了不少资料没有找到,办法总问题多,那么就尝试别的办法,将base64转成NSData,AVAudioPlayer也可以直接播放NSData,代码如下:

- (void)base64Todata:(NSString *)base64String {

    NSData *data = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
    NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *filePath = [NSString stringWithFormat:@"%@/test.mp3",docDirPath];
    [data writeToFile:filePath atomically:YES];

    NSError *error;
    NSURL *fileURL = [NSURL fileURLWithPath:filePath];

    //data播放
    AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:data fileTypeHint:AVFileTypeWAVE error:&error];//AVFileTypeWAVE 为音频格式

    //fileURL播放
    // AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&error];
    [player play];

}