Ответ 1
Для каждого звука, который вы хотите сделать, создайте новый AVPlayer.
NSURL *url = [NSURL URLWithString:pathToYourFile];
AVPlayer *audioPlayer = [[AVPlayer alloc] initWithURL:url];
[audioPlayer play];
Я пытаюсь воспроизвести несколько звуков одновременно.
Первоначально я решил создать несколько игроков, но это кажется неправильным.
Каков наилучший способ воспроизведения нескольких аудиофайлов одновременно.
Это делает их AVAssets, но в этом случае, как бы я остановился и сыграл их, когда захочу.
Действительно оцените вашу помощь.
Причиной, по которой мне нужен AVPlayer, является выборка звуков из библиотеки iPod.
Наконец-то я получил ответ от TechSupport от Apple Dev Team, и, похоже, я нахожусь на правильном пути, когда решил использовать несколько AVPlayer.
Для каждого звука, который вы хотите сделать, создайте новый AVPlayer.
NSURL *url = [NSURL URLWithString:pathToYourFile];
AVPlayer *audioPlayer = [[AVPlayer alloc] initWithURL:url];
[audioPlayer play];
Я никогда не отвечал на вопрос здесь, и я не знаю, что кто-то все еще ждет ответа на этот вопрос, но это мой подход... Попробуйте это, и он должен работать, я в настоящее время использую его для воспроизведения 12 + одновременных аудио. Прошу прощения, если я делаю что-то новенькое.
Вы нажимаете кнопку, и вы запускаете этот код...
Но сначала вам нужно:
Тогда просто...
-(IBAction)playButtonPressed:(id)sender {
NSURL *yourMusicFile;
yourMusicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"your_Song_Name" ofType:@"mp3"]];
myAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
[myAudio play];
NSLog(@"Button -playButtonPressed- has been pressed!");
}
Ну, мое решение выходит из опыта. При необходимости я могу быстро подготовить проект. Но также, это требует использования MoMu API в Стэнфорде. Он включает создание объектов WvIn и WvOut для чтения файлов. Образцы аудио этих объектов просто нужно подавать в выходной буфер для одновременного воспроизведения файлов. Хотя API использует AVFoundation, в этом проекте явно не используется AVFoundation.