2

iPhone アプリケーションで短いアラーム音を再生しようとしていますが、見つけたこのコードを使用していますが、音は再生されません。

NSString *toneFilename = [[NSBundle mainBundle] pathForResource:@"alarm" ofType:@"wav"];
    NSURL *toneURLRef = [NSURL fileURLWithPath:toneFilename];
    SystemSoundID Sound;

    AudioServicesCreateSystemSoundID(
                                     (__bridge CFURLRef) toneURLRef,
                                     &camerSound
                                     );

    AudioServicesPlaySystemSound(Sound);

私が振動させようとすると、それは動作します:

AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);

どうも

4

3 に答える 3

3

AVFoundationFramework の使用

をプロジェクトに追加AVFoundation.frameworkします。

#import <AVFoundation/AVFoundation.h>

NSString *toneFilename = [[NSBundle mainBundle] pathForResource:@"alarm" ofType:@"wav"];
NSURL *toneURLRef = [NSURL fileURLWithPath:toneFilename];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL: toneURLRef error: nil];
player.currentTime = 0;
player.volume = 1.0f;
[player play];
于 2012-12-09T15:16:05.743 に答える
1

Soundサウンドを作成するときに、変数を正しくアドレス指定していません。代わりに を使用してcamerSoundいます。AudioServicesPlayAlertSound正しいパラメータで を呼び出すと、うまくいくはずです。

于 2012-12-09T15:39:54.423 に答える
1

これは私にとって完璧に機能します。

プロジェクトに AVFoundation および AudioToolBox フレームワークを追加する

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

@interface TestViewController : UIViewController
{
    SystemSoundID SoundID;
}

@implementation TestViewController
-(void) viewDidLoad {
    [super viewDidLoad];
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"caf"];
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &SoundID);  //When using ARC, make sure to use __bridge
 }

-(void) playSound {
     AudioServicesPlaySystemSound(SoundID);
 }
于 2014-06-20T06:26:20.103 に答える