【问题标题】:ios - AVAudioPlayer - audioPlayerDidFinishPlaying is sometimes called at random times in a clipios - AVAudioPlayer - audioPlayerDidFinishPlaying 有时在剪辑中随机调用
【发布时间】:2012-04-26 04:20:30
【问题描述】:

我有一个 AVAudioPlayer 正在播放约 30 分钟的 mp3 文件。有时,audioPlayerDidFinishPlaying:successfully 会被调用(成功标志设置为 TRUE),即使它只进入剪辑 5 分钟。它很少发生,但它可能发生在剪辑中的任何位置。

我只注意到当用户按下用户界面上的按钮或移动滑块时会发生这种情况。而且他们在用户界面上按下按钮的速度越快,发生这种情况的可能性就越大。

任何想法可能导致此问题,或如何解决?

更多信息: 一次只播放一种声音。按钮操作不播放声音。 AVAudioPlayer 在我的主 ViewController 中本地声明。我在 iPhone 3GS 和 iPhone 4s 上进行了测试。这个问题在 iPhone 4s 上很少发生。在 3GS 上更频繁。

【问题讨论】:

  • 1.您是否正在为按钮操作播放任何其他声音剪辑? 2. AVAudioPlayer 是如何声明的(全局或局部)? 3. 你测试的是什么设备?
  • 如果你能发布你的,那么我们可以帮助你..
  • @deamonsarea 一次只播放一种声音。按钮操作不播放声音。 AVAudioPlayer 在我的主 ViewController 中本地声明。我在 iPhone 3GS 和 iPhone 4s 上进行了测试。这个问题在 iPhone 4s 上很少发生。它在 3GS 上更为频繁。
  • 可能是内存的原因。只需尝试减少 mp3 的长度和大小,然后查看。我们需要代码来进一步调试。

标签: iphone ios avaudioplayer


【解决方案1】:

好的,从昨天开始我遇到了同样的问题。不要我们是否有同样的问题,但我会把它扔在这里

在滑块 ValueChanged 事件处理程序中,我尝试根据滑块的新位置更新视图元素。但是在 updateViewMethod 中,我调用了另一个

slider.value = self.player.currentTime;

删除解决了我的问题。

因此,简而言之,您的计时器回调应该更新滑块,但滑块 valuechanged 处理程序不应该重做工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多