package com.example.androidapi.media;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.URLUtil;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
import com.example.androidapi.R;
public class VideoViewDemo extends Activity {
private String current;
private String path = "http://daily3gp.com/vids/747.3gp";
private VideoView mVideoView;
private Button btnstart,btnpause,btnreset,btnstop;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.videoview);
btnstart = (Button)findViewById(R.id.videostart);
btnpause = (Button)findViewById(R.id.videopause);
btnreset = (Button)findViewById(R.id.videoreset);
btnstop = (Button)findViewById(R.id.videostop);
mVideoView = (VideoView) findViewById(R.id.surface_view);
btnstart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
playVideo();
}
});
btnpause.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mVideoView != null) {
mVideoView.pause();
}
}
});
btnreset.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mVideoView != null) {
mVideoView.seekTo(0);
}
}
});
btnstop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mVideoView != null) {
current = null;
mVideoView.stopPlayback();
}
}
});
}
private void playVideo() {
try {
if (path == null || path.length() == 0) {
Toast.makeText(VideoViewDemo.this, "File URL/path is empty",
Toast.LENGTH_LONG).show();
} else {
if (path.equals(current) && mVideoView != null) {
mVideoView.start();
mVideoView.requestFocus();
return;
}
current = path;
mVideoView.setVideoPath(getDataSource(path));
mVideoView.setMediaController(new MediaController(this));
mVideoView.start();
mVideoView.requestFocus();
}
} catch (Exception e) {
if (mVideoView != null) {
mVideoView.stopPlayback();
}
}
}
//下载视频
private String getDataSource(String path) throws IOException {
if (!URLUtil.isNetworkUrl(path)) {
return path;
} else {
URL url = new URL(path);
URLConnection cn = url.openConnection();
cn.connect();
InputStream stream = cn.getInputStream();
if (stream == null)
throw new RuntimeException("stream is null");
File temp = File.createTempFile("mediaplayertmp", "dat");
temp.deleteOnExit();
String tempPath = temp.getAbsolutePath();
FileOutputStream out = new FileOutputStream(temp);
byte buf[] = new byte[128];
do {
int numread = stream.read(buf);
if (numread <= 0)
break;
out.write(buf, 0, numread);
} while (true);
try {
stream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return tempPath;
}
}
}
android中videoView的使用
最新推荐文章于 2025-06-11 16:35:06 发布