Я хотел бы получить аудиопоток из URL-адреса и воспроизвести его на iPhone. К сожалению, есть только пример С#, как играть в этот поток, но мне нужна реализация Objective C в iPhone. Я пробовал самостоятельно использовать разные аудиокарты, но все это было безуспешно. Это то, что в С#:
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];