2013-02-19 157 views
1

以下是我的代碼 我無法播放SnareHitSample.wav文件。 我不知道我在哪裏出錯。如何播放Wav文件

-(void)playAudioFiles 
{ 
    NSString * path; 
    AVAudioPlayer * snd; 
    NSError * err; 
    NSString *name; 
    name = @"SnareHitSample.wav"; 
    path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:name]; 

    if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { 
     NSURL * url = [NSURL fileURLWithPath:path]; 
     snd = [[AVAudioPlayer alloc] initWithContentsOfURL:url 
                 error:&err] ; 
     if (! snd) { 
      NSLog(@"Sound named '%@' had error %@", name, [err localizedDescription]); 
     } else { 
      [snd prepareToPlay]; 
     } 
    } else { 
     NSLog(@"Sound file '%@' doesn't exist at '%@'", name, path); 
    } 
} 

回答

6

感謝大家,我宣佈在.h文件avaudioplayer對象我的問題得到解決了。

{ 
AVAudioPlayer *player1; 
    } 
+0

當audioPlayer/theAudio超出範圍時,它將被取消分配,然後聲音播放將停止。像你一樣向類中添加一個屬性,它將在對象的生命週期中保持不變。 – 2013-09-25 15:03:20

5

試試看看這個代碼。

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
            pathForResource:@"SnareHitSample" 
            ofType:@"wav"]]; 
NSError *error = nil; 
AVAudioPlayer * audioPlayer = [[AVAudioPlayer alloc] 
       initWithContentsOfURL:url 
       error:&error]; 
if (error) 
{ 
    NSLog(@"Error in audioPlayer: %@",[error localizedDescription]); 
} 
else 
{ 
    audioPlayer.delegate = self; 
    [audioPlayer play]; 
    [audioPlayer setNumberOfLoops:INT32_MAX]; // for continuous play 
} 
+0

謝謝,但不工作。 – 2013-02-19 07:04:46

+0

您需要將SnareHitSample.wav複製(拖放)到您的項目中。你添加了嗎? @MohammedEbrahim – 2013-02-19 07:07:11

+0

它們他們我嘗試它的MP3文件也是同樣的問題 – 2013-02-19 07:08:34

1

試試下面的代碼:

AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] 
                         pathForResource:@"SnareHitSample" ofType:@"wav"]] error:NULL]; 
     [theAudio play]; 

,你會擺脫這種..任何查詢回覆我..

+0

感謝但不工作 – 2013-02-19 07:12:08

+0

您是否在項目中添加了.wav文件? – Lalit 2013-02-19 07:14:42

+0

是的,我添加了。 – 2013-02-19 07:16:20