Android:ProgressBar不工作
我用的是媒体播放器。我想在连接URL和媒体播放器准备就绪时显示进度条,但无法显示Android:ProgressBar不工作,android,progress-bar,android-mediaplayer,Android,Progress Bar,Android Mediaplayer,我用的是媒体播放器。我想在连接URL和媒体播放器准备就绪时显示进度条,但无法显示 public class MainActivity extends Activity implements OnClickListener, Runnable{ MediaPlayer mPlayer; ProgressBar pBar = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(sa
public class MainActivity extends Activity implements OnClickListener, Runnable{
MediaPlayer mPlayer;
ProgressBar pBar = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Continue();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void Connect()
{
try {
Toast.makeText(getApplicationContext(),"Yayın Açılana Kadar Lütfen Bekleyiniz" , Toast.LENGTH_SHORT).show();
mPlayer.prepare();
} catch (IllegalStateException e) {
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
mPlayer.start();
pBar.setVisibility(ProgressBar.VISIBLE);
pBar.setProgress(0);
pBar.setMax(mPlayer.getDuration());
new Thread(this).start();
if(mPlayer!=null)pBar.setVisibility(ProgressBar.GONE);
}
public void Continue()
{
mPlayer = new MediaPlayer();
String str = "http:MyURL";
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mPlayer.setDataSource(str);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
Connect();
}
public void run() {
// TODO Auto-generated method stub
int currentPosition =0;
int total = mPlayer.getDuration();
while(mPlayer!=null && currentPosition<total){
try{
Thread.sleep(1000);
currentPosition = mPlayer.getCurrentPosition();
}catch(InterruptedException e){
return;
}catch(Exception e){
return;
}
pBar.setProgress(currentPosition);
}
}
}
public类MainActivity扩展活动实现OnClickListener,Runnable{
媒体播放器mPlayer;
ProgressBar pBar=null;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
继续();
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
公共void Connect()
{
试一试{
Toast.makeText(getApplicationContext(),“Yayın Aılana Kadar Lütfen bekleyinazing”,Toast.LENGTH_SHORT).show();
mPlayer.prepare();
}捕获(非法状态){
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_SHORT).show();
e、 printStackTrace();
}捕获(IOE异常){
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_SHORT).show();
e、 printStackTrace();
}
mPlayer.start();
pBar.setVisibility(ProgressBar.VISIBLE);
pBar.setProgress(0);
setMax(mPlayer.getDuration());
新线程(this.start();
if(mPlayer!=null)pBar.setVisibility(ProgressBar.GONE);
}
公众假期(续)
{
mPlayer=新媒体播放器();
String str=“http:MyURL”;
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
试一试{
mPlayer.setDataSource(str);
}捕获(IllegalArgumentException e){
//TODO自动生成的捕捉块
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_SHORT).show();
e、 printStackTrace();
}捕获(非法状态){
//TODO自动生成的捕捉块
e、 printStackTrace();
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_SHORT).show();
}捕获(IOE异常){
//TODO自动生成的捕捉块
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_SHORT).show();
e、 printStackTrace();
}
Connect();
}
公开募捐{
//TODO自动生成的方法存根
int currentPosition=0;
int total=mPlayer.getDuration();
当(mPlayer!=null&¤tPosition您在启动线程后立即调用pBar.setVisibility(ProgressBar.GONE);
。它将立即显示,然后消失。
处理完成后,在run方法中移动它。我将其删除到run方法end,但它仍然不工作。ProgressBar.show()不存在。我正在使用pBar.setVisibility(ProgressBar.VISIBLE);对不起,是我的错..您在哪里初始化它?为了将来的参考,请尝试对您的问题进行更好的描述。告诉我们您“无法”执行某些操作会让我们不知道问题是什么。黑屏?强制关闭?异常?电话爆炸?请进行说明。