如何玩Wav文件

Moh*_*him 1 wav avaudioplayer ios

下面是我的代码我无法播放SnareHitSample.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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Moh*_*him 6

谢谢大家我在.h文件中声明了avaudioplayer对象我的问题得到了解决.

  {
 AVAudioPlayer *player1;
  }
Run Code Online (Sandbox Code Playgroud)


Vin*_*ini 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
}
Run Code Online (Sandbox Code Playgroud)

  • 当audioPlayer超出范围时,它将被取消分配,然后声音播放将停止.向类添加属性,它将在对象生命周期的持续时间内保留. (4认同)