【发布时间】:2013-07-18 12:37:21
【问题描述】:
我正在开发一个带有录音机和播放器的应用程序。我正在使用 mediaplayer 播放录制的 .wav 文件,同时我想更新到搜索栏。一切正常但我的问题是媒体播放器对搜索栏的进度更新并不顺利,如果我们正在播放一个小文件,搜索栏的拇指会在几秒钟内或之间跳跃。
任何人都可以帮助我解决问题,以使其在搜索栏中顺利搜索进度。我的代码如下所示。我被卡在这里了。
mediaPlayerIntiate();
mediaPlayerSetSource();
mMediaPlayer.start();
task = new TimerTask() {
@Override
public void run() {
Graphbar.post(new Runnable() {
@Override
public void run() {
if (mMediaPlayer != null) {
if (playButtonState == MediaMode.PLAY) {
if (mMediaPlayer.isPlaying()) {
Graphbar.setProgress(mMediaPlayer
.getCurrentPosition());
mediaPlayerUpdateTimer(mMediaPlayer
.getCurrentPosition());
enableRewindandForward();
}
}
}
}
});
}
};
timer = new Timer();
timer.schedule(task, 0, 8);
【问题讨论】:
-
如果记录的总持续时间小于某个值,您是否尝试过仅设置动画(使用属性动画)搜索栏而不是调用 mMediaPlayer.getCurrentPosition()?
-
建议:不要在一秒钟内调用 new Runnable() 125 次。你做的垃圾太多了。
-
你在什么设备上测试这个?我尝试了您的代码并且搜索栏更新顺利,即使
1第二次播放时间(在 nexus 4 上)。 -
播放 .wav 文件时出现问题,请告诉我 1 秒 wav 文件如何在 ma 代码中工作。
标签: android media-player progress seekbar smooth