13

cocoa から mp3 ファイルをロード、再生、制御する簡単な方法はありますか? グーグルで検索してみましたが、すべてがうまくいくと、厄介な結果が得られ、どこから始めればよいかわかりません。私が理解しているように、NSSound がありますが、多くの制限があり、次に CoreAudio がありますが、非常に困難です。それで、誰かがこれで私を正しい方向に向けることができますか? ありがとう。

4

6 に答える 6

40

進行中の復活:

なぜこの質問を復活させるのですか?グーグル「ココア演奏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];
}

最後に、クレジットはこの男に行きます。

于 2012-04-12T14:07:37.807 に答える
5

私は役立つかもしれないフレームワークを C++ で書きました: http://github.com/sbooth/SFBAudioEngine

複数のオーディオ形式をサポートし、かなり無害な API を備えており、Cocoa サンプルが付属しています。

サードパーティのフレームワークに興味がない場合は、AudioQueue を使用して再生を処理することをお勧めします。これを行うには、おそらく AudioFile を使用して MP3 と AudioQueue をデコードし、再生します。Apple のhttp://developer.apple.com/mac/library/samplecode/AudioQueueTools/Introduction/Intro.htmlに例があります。

于 2010-07-18T18:29:28.127 に答える
1

NSSoundを使用します。

「多くの制限」が何を意味するのかを特定しなかったので、なぜこれがうまくいかないのかわかりません. Leopard 以来、制限がはるかに少ないことに注意してください。たとえば、任意のデバイスで再生できるようになりました。

于 2010-07-18T19:16:43.330 に答える
0

その上NSSound、あなたは考えることができますQTMovieView。奇妙に聞こえますがQTMovieView、ウィンドウに隠して、MP3を再生するために使用することができます。

追加:QTMovieViewOS10.9で非推奨になりました。したがって、10.7より前のバージョン(AVFoundationがMacに登場したとき)をサポートする必要がない限り、おそらくこれを使用しないでください。

于 2010-07-18T18:47:36.700 に答える