В настоящее время я использую CocosDenshion для небольших звуковых эффектов (длиной в полсекунды), и теперь мне нужно проигрывать короткие 30-секундные аудиоклипы (mp3), которые размещены на сервере, а не внутри пакета ресурсов приложения.Я пытаюсь заставить некоторый код воспроизводить его с двумя «требованиями»:
- , чтобы он воспроизводился при загрузке, поэтому мне не пришлось бы ждать загрузки всего объекта, чтобы просто воспроизвестиit.
- Чтобы у него был какой-то делегат, показывающий ход воспроизводимой дорожки.
Я пытался использовать AVAudioPlayer, но он не работает для меня, плюс он не работает.'Буфер' данных, он ждет загрузки всей вещи (пробовал на симуляторе, если это имеет значение).То, что я попробовал, это:
- (IBAction)play:(id)sender{
NSString *_mp3file = @"http://www.somesite.com/somefile.mp3";
NSData *_mp3data = [NSData dataWithContentsOfURL:[NSURL URLWithString: _mp3file]];
NSError *error;
AVAudioPlayer *avp = [[AVAudioPlayer alloc] initWithData:_mp3data error:&error];
avp.numberOfLoops = 0;
avp.volume = 1.0f;
avp.delegate = self;
[avp prepareToPlay];
if(avp == nil)
GTMLoggerError(@"%@", error);
else
[avp play];
}
Буду рад вашей помощи опыт на этом :)Ура,Шай.