0

我一直在关注教程并查看其他帖子,但是当我的应用程序启动时,我似乎无法让音频开始自动播放。

我希望 wav 文件在后台继续播放并循环播放。我不想启动和停止控制等...

下面是我在 ViewController.m 文件中的代码(这是正确的位置吗?),我添加了 AVFoundation.frameowrk 并将其导入到我的 .m 文件中。此外,我已将名为 AlienRoom 的 wav 文件添加到我的支持文件中。任何帮助都是极好的!我是新来的,所以请一步一步来,或者如果可以的话,把它说清楚。谢谢!!!

ps 我还没有添加代码让它循环,所以任何帮助都会很棒!

//play background sound upon opening app

-(void) awakeFromNib

{

NSString *path = [[NSBundle mainBundle] pathForResource: @"AlienRoom" ofType: @"wav"];
AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
[theAudio play];
}
4

1 回答 1

0

ViewController.h中实现AVAudioPlayerDelegate

@interface ViewController : UIViewController <AVAudioPlayerDelegate>

@property(nonatomic,strong)AVAudioPlayer *theAudio;

ViewController.m 文件

-(void)viewWillAppear:(BOOL)animated
{
   NSString *path = [[NSBundle mainBundle] pathForResource: @"AlienRoom" ofType: @"wav"];
   if(!self.theAudio)
       self.theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
   self.theAudio.delegate = self;
   [self.theAudio play];
}

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)data successfully:(BOOL)flag{

    [NSThread detachNewThreadSelector:@selector(playAudioAgain) toTarget:self withObject:nil];

}

- (void)playAudioAgain{

   [self.theAudio play];
}

-(void)viewWillDisappear:(BOOL)animated
{
   if(self.theAudio.isPlaying)
   {
        self.theAudio.delegate = nil;
        [self.theAudio stop];
    }
}
于 2013-03-15T01:11:14.367 回答