私は、多数の製品カテゴリがあり、各製品カテゴリに 1 つのビデオが含まれるプロジェクトを行っています。Web サービスから URL を取得して動画を再生しています。そのビデオを初めて再生するとき、そのビデオをそのURLから1回だけダウンロードする必要があります。また、インターネット接続がない場合は、ダウンロードした場所 (SD カード) から再生する必要があります。3 つの製品すべてについて 3 つのビデオをダウンロードしたとします。インターネットがない場合、つまり SD カードからそれらのビデオを再生する必要があります。ここで問題になるのは、各製品の特定のビデオ パスを取得する方法です。ギャラリーを開く必要はありません。その製品のビデオを直接再生する必要があります。ビデオのダウンロードを複数回制限する方法。ビデオを再生するための私のコードは
private void playVideo(String path) {
dialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar);
dialog.setContentView(R.layout.layout_video_popup);
ImageView imgViewClose = (ImageView)dialog.findViewById(R.id.imgViewClose);
imgViewClose.setOnClickListener(this);
btnPlayPause = (Button) dialog.findViewById(R.id.button1);
btnPlayPause.setOnClickListener(this);
seekBar = (SeekBar) dialog.findViewById(R.id.seekBar1);
seekBar.setOnClickListener(this);
linearlayout = (LinearLayout) dialog.findViewById(R.id.linerlayout_bottom);
mVideoView = (VideoView)dialog.findViewById(R.id.videoView);
mVideoView.setOnTouchListener(this);
mVideoView.setOnPreparedListener(this);
mVideoView.setOnCompletionListener(this);
dialog.show();
playVideo(path, mVideoView);
AppLog.d("Video", "playVideo()", path);
}
private void playVideo(String path, VideoView mVideoView) {
if(path == null || path.isEmpty()) {
return;
}
try {
pDialpg = ProgressDialog.show(this, "Video", "Please wait..", false, true);
mVideoView.setVideoPath(path);
mVideoView.requestFocus();
RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
relativeParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
relativeParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
mVideoView.setLayoutParams(relativeParams);
mVideoView.invalidate();
} catch (Exception e) {
// TODO: handle exception
}