Android Java:更新seekbar以在播放音频文件时显示进度 [英] Android Java: Update seekbar to show progress as audio file plays
问题描述
这是我的第一个Android/Java应用程序.我正在此处使用第一个答案来尝试启动重复任务,更新搜索栏("timeSlider")以在播放音频文件时显示进度.这是我的代码(消除了一些不相关的行):
This is my first Android/Java app. I am using the first answer here to try to initiate a repeating task, updating a seekbar ("timeSlider") to show progress as an audio file plays. Here is my code (eliminating a few irrelevant lines):
private int timeSliderInterval = 1000; // 1 second
private Handler timeSliderHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play);
Intent intent = getIntent();
Runnable doUpdateTimeSlider = new Runnable() {
@Override
public void run() {
timeSliderHandler.postDelayed(doUpdateTimeSlider, timeSliderInterval);
updateTimeSlider();
}
};
void startUpdateTimeSlider() {
doUpdateTimeSlider.run();
}
void stopUpdateTimeSlider() {
timeSliderHandler.removeCallbacks(doUpdateTimeSlider);
}
final SeekBar timeSlider = (SeekBar) findViewById(R.id.timeSlider);
if (timeSlider != null) {
timeSliderHandler = new Handler();
startUpdateTimeSlider();
}
@Override
public void onDestroy() {
super.onDestroy();
stopUpdateTimeSlider();
}
该项目不显示在仿真器中.工具提示显示以下错误:
The project does not display in the emulator. Tooltips show these errors:
此外,startUpdateTimeSlider
和stopUpdateTimeSlider
函数在工具提示中显示此错误:
In addition, the startUpdateTimeSlider
and stopUpdateTimeSlider
functions are showing this error in tooltips:
此外,在运行"窗口中,我得到:
Also, in the Run window, I'm getting:
仿真器:仿真器窗口不可见并且已重新放置
emulator: emulator window was out of view and was recentered
模拟器:错误:_factory_client_recv:未知的相机工厂查询 在''
emulator: ERROR: _factory_client_recv: Unknown camera factory query name in ' '
任何帮助将不胜感激!
推荐答案
第一个问题是自我解释的,您需要添加final
修饰符.
First issue is self explained, you need to add final
modifier.
final Runnable doUpdateTimeSlider = ...
第二个-移动startUpdateTimerSlider()
方法,现在在其内部onCreate()
方法
Second one - move startUpdateTimerSlider()
method, now its inside onCreate()
method
看起来像您错过了}
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play);
Intent intent = getIntent();
Runnable doUpdateTimeSlider = new Runnable() {
@Override
public void run() {
timeSliderHandler.postDelayed(doUpdateTimeSlider, timeSliderInterval);
updateTimeSlider();
}
};
}//<--------HERE
void startUpdateTimeSlider() {
doUpdateTimeSlider.run();
}
这篇关于Android Java:更新seekbar以在播放音频文件时显示进度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!