Я хочу получить аудиопоток с URL и воспроизвести его на iPhone. К сожалению, есть только пример C # того, как воспроизводить этот поток, но мне нужна реализация Objective C в рамках iPhone. Я пробовал использовать разные аудиофреймворки, но все безуспешно. Вот что в C #:
response = httpWebRequest.GetResponse();
using (Stream stream = response.GetResponseStream())
{
using (SoundPlayer player = new SoundPlayer(stream))
{
player.PlaySync();
}
}
Что мне делать в цели 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];