0
ビデオをロードしているときにProgressDialogを表示しようとしています。 私のplay(String _videoUri)関数が呼び出されていないようです。 誰でも私にその理由を教えてもらえますか?なぜ私の関数が呼び出されないのですか?
新しいIntentを開始するためのこのセットアップはまったく同じですが、うまくいくようですが、この場合や指定されたURLから動画を読み込むことはできません。
private void showPopupMenu(View v){
PopupMenu popupMenu = new PopupMenu(VideoPlayer.this, v);
if(bitRates != null){
for(int i=0;i<bitRates.size();i++){
int menuItem = i;
popupMenu.getMenu().add(0,menuItem, 0,"BitRate: "+bitRates.get(i));
}
}
popupMenu.show();
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(final MenuItem item) {
progressDialog = ProgressDialog.show(VideoPlayer.this, "", "Loading video...");
new Thread() {
public void run() {
try{
play(streamUrls.get(item.getItemId()));
}
catch (Exception e)
{
Log.e("tag", e.getMessage());
}
progressDialog.dismiss();
}
}.start();
return true;
}
});
}
public void play(String _videoUri){
Log.i(TAG,"URI is : "+Uri.parse(_videoUri).toString());
MediaController mc = new MediaController(VideoPlayer.this);
mVideoView.setMediaController(mc);
mVideoView.setVideoURI(Uri.parse(_videoUri));
mVideoView.requestFocus();
mVideoView.start();
}
runOnUiThread(Runnableアクション)を使用してplay()メソッド呼び出しをラップしてみてください。 – yorkw
@yorkwありがとう、それはうまくいきましたが、今度はprogressDialogが正しい時刻に呼び出されません。ビデオがロードされた後に表示されます。 – Fabii