使用条件

短いサウンドファイルをごく簡単に再生するには、System Sound ServicesのAudioServicesPlaySystemSound関数を使用します。単純化されているために、この関数にはいく つかの制限があります。サウンドファイルは、以下の条件を満たす必要があります。

■ 長さが30秒未満である
■ リニアPCMフォーマットまたはIMA/ADPCM (IMA4)フォーマットである
■ .cafファイル、.aifファイル、または.wavファイルになっている

さらに、AudioServicesPlaySystemSound関数を使用する場合は、以下の制限があります。

■ システムの現在のオーディオレベルで再生される
■ すぐに再生される
■ ループおよびステレオポジション決定は利用できない

使用方法

AudioServicesPlaySystemSound関数を使用してサウンドを再生するには、まず、サウンドIDオブジェクトを作成して、サウンドファイルをシステムサウンドとして登録します。その後で、そのサウンドを再生できます。たびたびまたは繰り返し再生するなどの典型的な使いかたでは、アプリケーションが終了するまでサウンドIDオブジェクトを保持します。起動時のサウンドなど、一度しかサウンドを使用しないことがわかっている場合は、サウンドを再生したらすぐにサウンドIDオブジェクトを破棄してメモリを解放します。

短いサウンドの再生

System Sound Servicesのインターフェイスを使用してサウンドを再生するための最小限のプログラムを示します。サウンド完了コールバックと、それをインストールする呼び出しは、このサウンドを再び再生することはない場合に、サウンドの再生後にメモリを解放したいときに主に役立ちます。

 
#include <AudioToolbox/AudioToolbox.h> 
#include <CoreFoundation/CoreFoundation.h> 
 
// サウンドの再生が終了したときに呼び出されるコールバックを定義する。 
// 再生後にメモリを解放する必要がある場合に役立つ 
static void MyCompletionCallback( 
    SystemSoundID mySSID, 
    void * myURLRef 
) { 
    AudioServicesDisposeSystemSoundID (mySSID); 
    CFRelease (myURLRef); 
    CFRunLoopStop (CFRunLoopGetCurrent()); 
} 
 
int main(int argc, const char * argv[]){ 
    // サウンドの再生に必要な要素を用意する 
    SystemSoundID        mySSID; 
    CFURLRef             myURLRef; 
    myURLRef = CFURLCreateWithFileSystemPath ( 
        kCFAllocatorDefault, 
        CFSTR ("../../ComedyHorns.aif"), 
        kCFURLPOSIXPathStyle, 
        FALSE 
    ); 
 
    // このサウンドファイルを表すシステムサウンドIDを作成する 
    OSStatuserror = AudioServicesCreateSystemSoundID (myURLRef, &mySSID); 
 
    // サウンド完了コールバックを登録する。 
    // これも、再生後にメモリを解放する必要がある場合に役立つ 
    AudioServicesAddSystemSoundCompletion ( 
        mySSID, 
        NULL, 
        NULL, 
        MyCompletionCallback, 
        (void *) myURLRef 
    ); 
 
    // サウンドファイルを再生する 
    AudioServicesPlaySystemSound (mySSID); 
 
    // サウンドを再生するのに十分な時間、アプリケーションの実行を継続するために 
    // 現在のスレッド上で実行ループを起動する。 
    // 後で、サウンド完了コールバックによって、この実行ループは停止する 
    CFRunLoopRun (); 
    return 0; 
} 
 

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-24 (日) 17:14:25 (2586d)