2016-08-14 7 views
1

MediaPlayerの再生準備中にProgressBarを表示し、MediaPlayerの再生を開始するとProgressBarが消えます。 これは私の問題は、プログレスバーが表示されないということである私のコードMediaPlayerの再生準備中にProgressBarを表示するにはどうすればよいですか?

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> 

です。

私は

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

このソリューションを試してみましたが、それは解決しません。

+0

のように使用することができますか? –

+0

私はそれを含める – abdelrhman

+0

それはXMLファイル全体ですか? RelativeLayoutを使用しているので、progressBarが別のコンポーネントの下にないことを確認してください。 –

答えて

0

あなたは私達にあなたのxmlファイルを表示することもでき、この

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

関連する問題