2013-02-19 160 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