我希望能够从 URL 获取音频流并在 iPhone 上播放。不幸的是,只有一个 C# 的例子可以播放该流,但我需要在 Objective C 和 iPhone 框架中实现它。我已经尝试使用不同的音频框架,但都没有成功。以下是 C# 代码:
response = httpWebRequest.GetResponse();
using (Stream stream = response.GetResponseStream())
{
using (SoundPlayer player = new SoundPlayer(stream))
{
player.PlaySync();
}
}
我应该在Objective-C中怎么做才能从那个URL获取流媒体音频?在这个URL中,我没有一个MP3文件或其他东西,我只是得到了一个流。可能我必须将该流下载到iPhone音频文件中,然后播放它以消除延迟。
我尝试过以下方法:
AVPlayer *player = [AVPlayer playerWithURL:url];
[player play];
并且这样说:AVAudioPlayer *theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL: url error:nil];
[theAudio setVolume :0.50]; //setting the volume
[theAudio play];
两种方法都没有奏效。我已经测试了我的 URL,在浏览器中可以正常工作。
这是最终奏效的代码:
NSData *_objectData = [NSData dataWithContentsOfURL:url];
NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:_objectData error:&error];
audioPlayer.numberOfLoops = 0;
audioPlayer.volume = 1.0f;
[audioPlayer prepareToPlay];
if (audioPlayer == nil)
NSLog(@"%@", [error description]);
else
[audioPlayer play];