我正在为语音消息集成第三方 SDK。它将音频文件保存到 Documents/audio/。我使用 iFunBox 查看了我的测试设备上的包,发现文件的名称如下:“b3abwx78...wav”。没有文件扩展名,名称的结尾只是“wav”,而不是“.wav”,这可能会导致我的问题。我使用的 SDK 是专有的,无法控制文件的保存方式。
该文件被 SDK 引用为“elem.text”,其日志如下所示:“audio://a8c0cd0c4138d66cc32cbdfb3c213f3bwav”
所以,我想做的只是将该文件加载到 AVAudioPlayer 并播放它。这是我目前正在尝试的。“路径”记录为空,URL也是如此,所以很明显我做错了什么:
-(void)playVoiceMail:(NSString *)filename
{
NSError *error;
NSString *escapedFilename = [filename stringByReplacingCharactersInRange:NSMakeRange(0, 8) withString:@""];
NSLog(@"escaped filename: %@", escapedFilename);
NSString *path = [[NSBundle mainBundle] pathForResource:escapedFilename
ofType:nil
inDirectory:@"Documents/audio"];
NSLog(@"path: %@", path);
NSURL *URL = [NSURL URLWithString:path];
NSLog(@"URL: %@", URL);
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:URL
error: &error];
NSLog(@"Player url: %@", player.url);
if (error)
NSLog(@"ERROR: %@", error.localizedDescription);
if (!player.playing)
if (![player play])
NSLog(@"ERROR playing");
}