2016-04-13 12 views
0

URLから動画を再生するアクティビティを作成する必要があります。 今私はVideoViewとMediaControllerを使用しています。このアクティビティを作成すると、ビデオをバッファリングした後に再生されます。それは動作しますが、そのメディアコントローラーは動作したがビデオは再生しないと1回しか再生しません。ここでAndroid - MediaControllerのVideoViewが正しく動作しない

は、コードの一部です:だから

private ProgressDialog progressDialog; 
private VideoView videoView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_video); 

    progressDialog = new ProgressDialog(this); 
    progressDialog.setTitle("Some title"); 
    progressDialog.setMessage("Buffering..."); 
    progressDialog.setIndeterminate(false); 
    progressDialog.setCancelable(false); 
    progressDialog.show(); 

    videoView = (VideoView) findViewById(R.id.video_view); 
    Intent intent = getIntent(); 
    String url = intent.getStringExtra("extra_url"); 

    Uri uri = Uri.parse(url); 
    videoView.setVideoURI(uri, HeadersMap); // Here I put my headers - I need to do that. 

    MediaController mediaController = new MediaController(this); 
    mediaController.setAnchorView(videoView); 
    videoView.setMediaController(mediaController); 
    videoView.requestFocus(); 
    videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      progressDialog.dismiss(); 
      videoView.start(); 
     } 
    }); 
} 

、問題は何ですか?なぜビデオは再び繰り返せないのですか?コントローラーでカーソルを開始するように設定しましたが、何も起こりません。どのように私はそれを処理することができます?または私は何をすべきか?

ありがとうございました!

答えて

1

videoView.setOnPreparedListener(new OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
     mp.setLooping(true); 
    } 
}); 

またあなたも、これは私のために動作しません...私が取得setOnCompletionListener

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 

    @Override 
    public void onCompletion(MediaPlayer mp) { 

     videoView.start(); 

    } 
}); 

OR

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer arg0) { 
      mVideoView.start(); 

     } 
    }); 


    videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
     public void onCompletion(MediaPlayer mp) { 
       mp.reset(); 
       videoView.setVideoURI(uri, HeadersMap); 
     } 
    }); 
+0

でそれを行うことができ、これを試してみてくださいそれはいくつかのヘッダーとインターネットストリームから、多分それは問題ですか? – DefaultXYZ

+0

編集された答えは 'setOnCompletionListener'を試してみます。インターネットストリームから取得しても、videoView機能には影響しません。 – Kathi

+0

ええ、それはヘッダーです、それがブロックする理由です!大いに感謝する!!! :) – DefaultXYZ

関連する問題