2

サイレントモードのiPhoneSDKでサウンドファイルを再生する方法は?

サイレントモードでサウンドファイルを再生しようとしていますが、結果はゼロです

私はこのコードを試しました

SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:fullpath],&soundID);
AudioServicesPlaySystemSound (soundID);

ヘッダーファイルにインポートするとき

#import <AudioToolbox/AudioToolbox.h>

次のようなエラーを作成します

エラー:「\x786f7073」の前に識別子が必要です

できるだけ早く.....

前もって感謝します

由来

StupidiPhoneDeveloper

4

2 に答える 2

3

ミュートスイッチによって消音されないオーディオセッションカテゴリを定義する必要があります。

アップル開発サイトのオーディオセッションページをチェックしてください:http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategories/AudioSessionCategories.html%23//apple_ref/doc/uid/TP40007875 -CH4-SW1

たぶん、AVAudioSessionCategoryPlayAndRecordが必要なものです。

于 2010-12-01T08:58:54.813 に答える
3

そのような迅速な返信をしてくれたバディに感謝します私は解決策を見つけました

次のコードであなたはあなたのiPhoneプロファイル(レギュラー/サイレント)をチェックすることができますそしてここにコードがあります

CFStringRef state; 
UInt32 propertySize = sizeof(CFStringRef); 
AudioSessionInitialize(NULL, NULL, NULL, NULL);
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);

if(CFStringGetLength(state) == 0) { 
    //SILENT
NSLog(@"Silent switch is on");

    //create vibrate
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    //this 2 line below use to play audio even in silent/vibrator mode too      

    UInt32 audioCategory = kAudioSessionCategory_MediaPlayback;
    AudioSessionSetProperty( kAudioSessionProperty_AudioCategory, sizeof(UInt32), &audioCategory);
}
else {
    //NOT SILENT
    NSLog(@"Silent switch is off");
}

そしてこのエラーについて

error: expected identifier before '\x786f7073'

すべてのクラスヘッダーファイルに次の行を書き込むだけです

#import <AudioToolbox/AudioToolbox.h>
于 2010-12-01T09:04:59.717 に答える