【发布时间】:2016-02-15 10:58:26
【问题描述】:
我可以使用安卓媒体播放器播放音频文件。我可以显示进度条和附加的 2 个按钮来暂停和播放音轨。我的问题是我无法使用进度条控制轨道。我想播放音轨以根据我将进度条拖到的位置进行更新。
下面是我的代码
public class MyMediaPlayerView extends AppCompatActivity implements View.OnClickListener {
/**
* var for controller
* restore timestamp today 12:11
*/
SeekBar seek_bar;
Button play_button, pause_button;
MediaPlayer player;
TextView text_shown;
Handler seekHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launch_webview);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getInit();
seekUpdation();
}
Runnable run = new Runnable() {
@Override public void run() {
seekUpdation();
}
};
public void seekUpdation() {
seek_bar.setProgress(player.getCurrentPosition());
seekHandler.postDelayed(run, 1000);
onProgressChanged(seek_bar, seek_bar.getProgress());
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.play_button: text_shown.setText("Playing...");
player.start();
break; case R.id.pause_button: player.pause();
text_shown.setText("Paused...");
}
}
public void onProgressChanged(SeekBar seek_Bar, int progress,
boolean fromUser) {
player.seekTo(progress);
}
}
【问题讨论】:
-
在我看来,即使没有用户交互,您也会每秒调用一次
seekTo。这似乎没有必要。 -
谢谢我最终删除了该方法调用。 onProgressChanged(seek_bar, seek_bar.getProgress());并删除 onProgressChanged(... mehod 然后我使用了接受的答案。
标签: android android-mediaplayer