iOS Streaming mp3

时间:2014-05-20 08:42:50

标签: ios objective-c streaming

我一直在寻找一个播放和播放音频的好教程,最后我发现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.)

3 个答案:

答案 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)

答案 2 :(得分:-1)

我在the accepted answer here

中找到了答案

“我能够通过首先将文件加载到NSData元素然后使用它来初始化AVAudioPlayer来解决问题,如下所示:”

NSData *songFile = [[NSData alloc] initWithContentsOfURL:songCacheURL options:NSDataReadingMappedIfSafe error:&error1 ];
self.audioPlayer = [[AVAudioPlayer alloc] initWithData:songFile error:&error2];