cocoa から mp3 ファイルをロード、再生、制御する簡単な方法はありますか? グーグルで検索してみましたが、すべてがうまくいくと、厄介な結果が得られ、どこから始めればよいかわかりません。私が理解しているように、NSSound がありますが、多くの制限があり、次に CoreAudio がありますが、非常に困難です。それで、誰かがこれで私を正しい方向に向けることができますか? ありがとう。
6 に答える
進行中の復活:
なぜこの質問を復活させるのですか?グーグル「ココア演奏mp3」が私をここに連れて行ってくれるので、2012年の素晴らしい答えはありません。だから、ここに素晴らしい2012年の答えがあります;)
AVFoundationを使用してください!アップルによると、Mac OS X Lionと統合されているので(私は思う)、mp3を簡単に再生する方法は次のとおりです。
1-AVFoundationフレームワークをリンクします。
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];
}
最後に、クレジットはこの男に行きます。
私は役立つかもしれないフレームワークを 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
OS10.9で非推奨になりました。したがって、10.7より前のバージョン(AVFoundationがMacに登場したとき)をサポートする必要がない限り、おそらくこれを使用しないでください。