2016-08-14 3 views
1

Я хочу показать ProgressBar, пока MediaPlayer готовится к игре, и когда MediaPlayer начинает проигрывать ProgressBar, исчезают. это мой кодКак я могу показать ProgressBar, пока MediaPlayer готовится к игре?

public class MainActivity extends Activity { 
    String path="http://live.mp3quran.net:8006/;"; 
    Button play_button, pause_button; 
    MediaPlayer player =new MediaPlayer(); 
    private ProgressBar mProgress; 
    @Override public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    play_button=(Button)findViewById(R.id.play_button); 
    pause_button=(Button)findViewById(R.id.pause_button); 
    mProgress=(ProgressBar)findViewById(R.id.progressBar); 
    mProgress.setVisibility(View.INVISIBLE); 
    play_button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     mProgress.setVisibility(View.VISIBLE); 
     try { 

      player.setDataSource(path); 
      player.prepare(); 
      player.start(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     finally { 
      if(mProgress.getVisibility()==View.VISIBLE) 
       mProgress.setVisibility(View.INVISIBLE); 
     } 

    } 

}); 

pause_button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     player.stop(); 
     player.reset(); 
    } 
}); 

} 
} 

мой XML-файл Код

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin"> 
<Button android:id="@+id/play_button" 
android:layout_width="120px" 
    android:layout_height="60px" 
    android:layout_marginTop="60px" 
    android:gravity="center" 
    android:text="Play" /> 
<Button android:id="@+id/pause_button" 
    android:layout_width="120px" 
    android:layout_height="60px" 
    android:layout_alignParentRight="true" 
    android:layout_marginTop="60px" 
    android:text="Pause" /> 
    <ProgressBar 
    style="?android:attr/progressBarStyleLarge" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/progressBar" 
    android:layout_alignBottom="@+id/text_shown" 
    android:layout_toRightOf="@+id/play_button" 
    android:layout_toLeftOf="@+id/pause_button" 
    android:max="100" 
    android:progress="20" 
    android:layout_toStartOf="@+id/pause_button" /> 
    </RelativeLayout> 

Моя проблема заключается в том, что ProgressBar не появляется.

Я попытался это решение

How can i show a ProgressBar when mediaPlayer is prepairing to play

, но это не помогает.

+0

могли бы вы показать нам свой файл XML? –

+0

У меня есть это – abdelrhman

+0

это весь XML-файл? Поскольку вы находитесь в RelativeLayout, убедитесь, что ваш progressBar не находится под другим компонентом ... –

ответ

0

Вы можете использовать как этот

final ProgressDialog ringProgressDialog = ProgressDialog.show(this, "Please wait ...", "Fetching your contact..", true); 
    ringProgressDialog.setCancelable(true); 
    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       // Here you should write your time consuming task... 
       // Let the progress ring for 10 seconds... 
       readContact(); 
      // Thread.sleep(300); 
      } catch (Exception e) { 

      } 
      ringProgressDialog.dismiss(); 
     } 
    }).start(); 
+0

Я сделал то, что вы сказали, но он все еще появляется, когда MediaPlayer начинает играть не тогда, когда MediaPlayer готовится к игре – abdelrhman

 Смежные вопросы

  • Нет связанных вопросов^_^