3

オーディオ ファイルを再生しようとしていますが、動作させることができます。フレームワークをインポートしましたAVFoundation

コードは次のとおりです。

NSString *fileName = [[NSBundle mainBundle] pathForResource:@"Alarm" ofType:@"caf"];
    NSURL *url = [[NSURL alloc] initFileURLWithPath:fileName];
    NSLog(@"Test: %@ ", url);

    AVAudioPlayer *audioFile = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
    audioFile.delegate = self;
    audioFile.volume = 1;

    [audioFile play];

エラーが表示されますnil string parameter

ファイルが存在するように、ファイルをサポート ファイル フォルダーにコピーしました。

皆さん、私を助けてくれますか?

ありがとう

4

4 に答える 4

0

audiotoolbox フレームワークを必ずインポートしてから、次のように記述してください。これは私が単純な音を演奏するために使用するものです

#import <AudioToolbox/AudioToolbox.h>

 CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Your sound here", CFSTR ("mp3"), NULL);

UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);

これについて混乱がある場合は、私に知らせてください。

于 2015-04-12T16:56:50.223 に答える
0

ファイルが特定のフォルダーにある場合は、次のようなものを使用します。

// Build URL to the sound file we are going to play
NSURL *sound_file = [[NSURL alloc] initFileURLWithPath: [[NSBundle mainBundle] pathForResource:sound_file_name ofType:@"mp3" inDirectory:directory]];   

// Play it
audio_player = [[AVAudioPlayer alloc] initWithContentsOfURL:sound_file error:nil];
audio_player.delegate = self;
[audio_player play];
[sound_file release];

sound_file_nameは、拡張子を除いたファイル名です。@"success"

directory次のようなものです:@"media/sound_effects"

于 2012-10-02T03:48:31.973 に答える
0

これを追加して、プログラムがファイルの存在を認識するかどうかを確認します。

NSLog(@"File Exists:%d",[[NSFileManager defaultManager] fileExistsAtPath:fileName]);

存在する場合は 1 を出力します。そうでない場合は、適切なファイル名があることを確認してください (大文字と小文字が区別されます)。

于 2012-10-02T03:48:43.267 に答える