多视图应用程序中的 AVAudioPlayer 问题

Posted

技术标签:

【中文标题】多视图应用程序中的 AVAudioPlayer 问题【英文标题】:Problems with AVAudioPlayer in multiView app 【发布时间】:2011-08-26 09:41:29 【问题描述】:

在我的应用程序中,我有 2 个视图:在 1-st 中有一个带有音频文件的 tableview。何时触摸单元格 AVAudioPlayer 开始播放。当我进入 2-nd 视图时 AVAudioPlayer 继续播放,当我返回 1-st 视图时继续播放。但是从这一刻开始出现问题:当我触摸其他单元格时开始播放这首曲目和上一首曲目,当我再次触摸时同时播放 3 首曲目。所以我的按钮“播放/暂停”在此之后工作不正确。我该如何解决这个错误?在每个 viewDidLoad 中,我创建 AVAudioPlayer 的新对象并为其分配前一个对象的值

(void)viewDidLoad 

    [self.traxbax.avAudioPlayer stop];

    audioPlayer=self.traxbax.avAudioPlayer;

    [self.traxbax.avAudioPlayer release];

    [audioPlayer play];



(void)viewDidLoad


    [self.bmvc.audioPlayer stop];

    avAudioPlayer=self.bmvc.audioPlayer;

    [self.bmvc.audioPlayer release];

    [avAudioPlayer play];

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

【问题讨论】:

【参考方案1】:

这绝对是 AVAudioPlayer 发布的一些问题。您可以尝试在发布后的行中添加:

self.bmvc.audioPlayer = nil;

顺便说一句:不太明白为什么最后一行有 [super viewDidLoad]。它应该是方法的第一行。

【讨论】:

以上是关于多视图应用程序中的 AVAudioPlayer 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的应用程序的所有视图中管理 AVAudioplayer

离开视图后无法使用 AVAudioPlayer 播放 AVAudioRecorder

AVAudiorecorder 和 AVAudioPlayer 并不总是播放声音

多任务处理后 AVAudioPlayer 继续播放

AVAudioPlayer 声音在经过这么多 IBAction 后停止播放

使用 AVAudioPlayer 将 URL 从 tableview 控制器传递到视图控制器