【问题标题】:audioPlayerDidFinishPlaying not being called during scrolling UITableView滚动 UITableView 期间未调用 audioPlayerDidFinishPlaying
【发布时间】:2010-06-13 20:21:33
【问题描述】:

我的一个观点是UITableView,它充当AVAudioPlayer 的代表,当您选择某一行时,该表基本上会播放声音,并在播放完成后选择重复声音。

但是,我注意到,如果我为某个声音选择一个重复 ON 的单元格,然后滚动 UITableView 以选择不同的声音,它不会调用 audioPlayerDidFinishPlaying(因此不会重复)直到滚动之后已经停止。一旦我停止滚动,它就会重复。或者,如果我根本不滚动,它会重复就好了。

在滚动过程中UITableView 不再充当代表并调用audioPlayerDidFinishPlaying 时会发生什么?有什么想法吗?

【问题讨论】:

    标签: iphone cocoa-touch uitableview scroll avaudioplayer


    【解决方案1】:

    即使文档没有明确说明,我怀疑 audioPlayerDidFinishPlaying 调用在主线程上被延迟(我的粗体句子):

    AVAudioPlayer 类可让您播放 任何可用音频格式的声音 iPhone 操作系统。您使用委托来 处理中断(例如 来电)并更新 有声音时的用户界面 播放完毕。委托方法 对于 AVAudioPlayer 类是 在 AVAudioPlayerDelegate 中描述 协议参考。

    只要有一些事件需要处理,比如滚动事件,调用就会在主线程上等待。

    【讨论】:

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