Есть ли простой способ загрузить, воспроизвести и управлять mp3-файлом из какао? Пытался погуглить, но, как и все, что связано с Apple, я получаю беспорядочные результаты и понятия не имею, с чего начать. Я так понимаю, есть и NSSound, но у него куча ограничений, а еще есть CoreAudio, но он очень сложный. Так может ли кто-нибудь указать мне правильное направление с этим? Спасибо.
какао играет в mp3
Ответы (4)
ИДЕТ ВОСКРЕСЕНИЕ:
Почему возникает этот вопрос? потому что гугление «какао играет в mp3» приводит меня сюда, а потрясающего ответа 2012 года нет. Итак, вот потрясающий ответ 2012 года ;)
Используйте AVFoundation! Согласно Apple, он был интегрирован с Mac OS X Lion (я думаю), так что .. Вот как безболезненно проигрывать mp3:
1- связать AVFoundation Framework.
2- импортируйте его туда, где вы хотите воспроизвести свой потрясающий mp3
#import <AVFoundation/AVFoundation.h>
3- Добавьте переменную экземпляра audioPlayer для воспроизведения звука (по крайней мере, мне нравится это делать)
@interface WCMainWindow : ... {
...
AVAudioPlayer* audioPlayer;
}
4- В вашей инициализации убедитесь, что вы инициализировали свой audioPlayer:
NSString* path = [[NSBundle mainBundle] pathForResource:@"myFile" ofType:@"mp3"];
NSURL* file = [NSURL fileURLWithPath:path];
// thanks @gebirgsbaerbel
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:file error:nil];
[audioPlayer prepareToPlay];
5- Включи свой потрясающий MP3!!
if ([audioPlayer isPlaying]) {
[audioPlayer pause];
} else {
[audioPlayer play];
}
Наконец, заслуга принадлежит этому парню а>.
[audioPlayer play]
- person Mazyod; 09.07.2012
[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"myFile" ofType:@"mp3"]];
устранило проблему.
- person gebirgsbärbel; 14.06.2013
Я написал структуру на C++, которая может помочь: http://github.com/sbooth/SFBAudioEngine
Он поддерживает несколько аудиоформатов, имеет довольно удобный API и поставляется с образцом Cocoa.
Если вас не интересуют сторонние фреймворки, вам, вероятно, стоит использовать AudioQueue для управления воспроизведением. Для этого вы, вероятно, использовали бы AudioFile для декодирования MP3 и AudioQueue для воспроизведения. У Apple есть пример на http://developer.apple.com/mac/library/samplecode/AudioQueueTools/Introduction/Intro.html
Используйте NSSound.
Вы не указали, что вы подразумеваете под «множеством ограничений», поэтому я не знаю, почему это не сработает для вас. Обратите внимание, что по сравнению с Leopard у него гораздо меньше ограничений; например, теперь вы можете играть на любом устройстве.
Помимо NSSound
, вы могли бы рассмотреть QTMovieView
. Звучит странно, но вы можете иметь скрытый QTMovieView
в своем окне и использовать его для воспроизведения MP3.
Добавлено: QTMovieView
устарело, начиная с OS 10.9. Поэтому, если вам не нужна поддержка версий ОС до 10.7 (когда AVFoundation появился на Mac), вам, вероятно, не следует использовать это.
setCurrentTime:
, в связанном QTMovie.
- person JWWalker; 19.07.2010