代码之家  ›  专栏  ›  技术社区  ›  iwasrobbed

在滚动UITableView期间未调用AudioPlayerIDFinishPlaying

  •  1
  • iwasrobbed  · 技术社区  · 16 年前

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

    但是,我注意到,如果我选择一个重复打开某个声音的单元格,然后滚动浏览 UITababVIEW 要选择不同的声音,它不会调用 audioPlayerDidFinishPlaying (因此不要重复)直到滚动停止。一旦我停止滚动,它就可以重复。或者如果我根本不滚动,它就可以重复。

    在滚动期间会发生什么 UITababVIEW 不再担任代理和呼叫 音频播放器IDfinishPlaying ?有什么想法吗?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Laurent Etiemble    16 年前

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

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

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

    推荐文章