项目需要开发一个功能,文字转换成语音,但是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];
}