0

ファイル audio.wav をサポート ファイル フォルダーにアップロードしました。

これは私のPlayAudio.hです

#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>

@interface PlayAudio : UIViewController {

}

-(IBAction) PlayIt;

@end

これは、実装コマンドの後の PlayAudio.m です。

- (IBAction) PlayIt; {
    CFBundleRef mainBundle = CFBundleGetMainBundle();
    CFURLRef soundFileURLRef;
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"audio", CFSTR ("wav"), NULL);
    UInt32 soundID;
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
    AudioServicesPlaySystemSound(soundID);

}

次に、ビュー コントローラーの再生ボタンから First Responder を Ctrl キーを押しながらクリックし、PlayIt を選択しました。Touch Up Inside に関連付けられているようです。

何らかの理由でボタンをクリックすることはできますが、何も再生されません。ストーリーボードでこれをやっています。

4

1 に答える 1

0

NSURL を使用して wav ファイルのパスを取得し、それを CFURLRef にキャストできます。次のコードを確認してください。

SystemSoundID soundID;
NSURL *soundPath = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"audio" ofType:@"wav"]];
if (AudioServicesCreateSystemSoundID ((CFURLRef)soundPath, &soundID) != kAudioServicesNoError) {
     AudioServicesPlayAlertSound(soundID);

}

iPhone のミュート ボタンが有効になっている場合、AudioServicesCreateSystemSoundID 関数は失敗することに注意してください (この場合、バイブレーションを使用できます:soundID = kSystemSoundID_Vibrate;)。ミュートスイッチを無視して音を鳴らしたい場合は、AVAudioPlayer api を使用してください。

于 2012-07-23T12:07:50.790 に答える