我一直在寻找一个播放和播放音频的好教程,最后我发现this似乎提供了离线音频播放。
在YMCAudioPlayer类中我评论加载资源并提供由直接链接生成的NSURL *,如此。
- (void)initPlayer:(NSString*) audioFile fileExtension:(NSString*)fileExtension
{
//NSURL *audioFileLocationURL = [[NSBundle mainBundle] URLForResource:audioFile withExtension:fileExtension];
NSURL *audioFileLocationURL = [NSURL URLWithString:@"http://188.95.64.47/AghaninaDownload/Content/per_singer/JFire/Audios/J-FirE_and_Omar_khalid_wlaKelmeh-sample.mp3"];
NSError *error;
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileLocationURL error:&error];
}
我确保它是一个有效的链接,但似乎不能在模拟器上播放。我错过了什么?
修改
它会生成以下错误
Error Domain=NSOSStatusErrorDomain Code=-43 "The operation couldn’t be completed. (OSStatus error -43.)
答案 0 :(得分:0)
可能是一个愚蠢的问题,但你有没有发挥它?
[self.audioPlayer play];
然后我会尝试这个,以确保您的设置正确:
[self.audioPlayer prepareToPlay];
[self.audioPlayer setCurrentTime:0.0];
[self.audioPlayer setVolume:1.0];
[self.audioPlayer play];
您还可以使用AVAudioPlayer的委托来检查您在玩游戏时是否发生了某些事情。
否则它可能是格式问题的URL。
答案 1 :(得分:0)
我认为你不能在EMULATOR上播放音频,你必须在设备上测试它。
这里提到了苹果开发者guid -
答案 2 :(得分:-1)
“我能够通过首先将文件加载到NSData元素然后使用它来初始化AVAudioPlayer来解决问题,如下所示:”
NSData *songFile = [[NSData alloc] initWithContentsOfURL:songCacheURL options:NSDataReadingMappedIfSafe error:&error1 ];
self.audioPlayer = [[AVAudioPlayer alloc] initWithData:songFile error:&error2];