【问题标题】:Seeker For Media Player媒体播放器搜索器
【发布时间】:2011-09-29 00:13:07
【问题描述】:

我假设有人会找到一个简单的解决方案,但我还没有找到一个直接的方法。我想构建一个搜索栏,用于通过 MediaPlayer 播放音频。我无法在 MediaPlayer 对象中找到类似 onSeekChanged 的​​侦听器,因此我构建了一个 AsyncTask,它通过while(playing) 循环不断刷新并更新持续时间和栏。然而,这似乎不是最好的方法,因为这个while 循环会导致应用程序运行非常缓慢(音频不会滞后,但暂停之类的按钮会延迟)。所以我想知道构建一个高效的搜索器的最佳实现是什么。这不是一个困难的问题,因为有这么多应用程序使用它,我只是想知道这样做的正确方法应该是什么。谢谢!

【问题讨论】:

  • 试试MediaController,你可以参考ApiDemos for samples。它完成了所有工作。只需忽略视频部分

标签: android audio media-player android-asynctask seek


【解决方案1】:

首先你需要在你的循环中至少休眠 1 毫秒:

Thread.sleep(1);

其次你可以计算下一次复查所需的时间:

Thread.sleep(1000 - currentPos % 1000);

此算法用于标准 MediaController。

【讨论】:

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