Android Java:更新seekbar以在播放音频文件时显示进度 [英] Android Java: Update seekbar to show progress as audio file plays

查看:289
本文介绍了Android Java:更新seekbar以在播放音频文件时显示进度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的第一个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:

此外,startUpdateTimeSliderstopUpdateTimeSlider函数在工具提示中显示此错误:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆