2

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

4

1 回答 1

0

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

Thread.sleep(1);

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

Thread.sleep(1000 - currentPos % 1000);

该算法用于标准 MediaController。

于 2012-10-29T17:45:33.460 回答