当前位置: 代码迷 >> Android >> Android – Video/Music 视频音乐播发
  详细解决方案

Android – Video/Music 视频音乐播发

热度:507   发布时间:2016-05-01 15:35:50.0
Android – Video/Music 视频音乐播放
package org.apache.android.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.EditText;import android.widget.ImageButton;import android.widget.Toast;import android.widget.VideoView;public class VideoViewDemo extends Activity {	private static final String TAG = "VideoViewDemo";	private VideoView mVideoView;	private EditText mPath;	private ImageButton mPlay;	private ImageButton mPause;	private ImageButton mReset;	private ImageButton mStop;	private String current;	@Override	public void onCreate(Bundle icicle) {		super.onCreate(icicle);		setContentView(R.layout.main);		mVideoView = (VideoView) findViewById(R.id.surface_view);		mPath = (EditText) findViewById(R.id.path);		mPath.setText("http://daily3gp.com/vids/747.3gp");		mPlay = (ImageButton) findViewById(R.id.play);		mPause = (ImageButton) findViewById(R.id.pause);		mReset = (ImageButton) findViewById(R.id.reset);		mStop = (ImageButton) findViewById(R.id.stop);		mPlay.setOnClickListener(new OnClickListener() {			public void onClick(View view) {				playVideo();			}		});		mPause.setOnClickListener(new OnClickListener() {			public void onClick(View view) {				if (mVideoView != null) {					mVideoView.pause();				}			}		});		mReset.setOnClickListener(new OnClickListener() {			public void onClick(View view) {				if (mVideoView != null) {					mVideoView.seekTo(0);				}			}		});		mStop.setOnClickListener(new OnClickListener() {			public void onClick(View view) {				if (mVideoView != null) {					current = null;					mVideoView.stopPlayback();				}			}		});		runOnUiThread(new Runnable(){			public void run() {				playVideo();			}		});	}	private void playVideo() {		try {			final String path = mPath.getText().toString();			Log.v(TAG, "path: " + path);			if (path == null || path.length() == 0) {				Toast.makeText(VideoViewDemo.this, "File URL/path is empty",						Toast.LENGTH_LONG).show();			} else {				// If the path has not changed, just start the media player				if (path.equals(current) && mVideoView != null) {					mVideoView.start();					mVideoView.requestFocus();					return;				}				current = path;				mVideoView.setVideoPath(getDataSource(path));				mVideoView.start();				mVideoView.requestFocus();			}		} catch (Exception e) {			Log.e(TAG, "error: " + e.getMessage(), 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) {				Log.e(TAG, "error: " + ex.getMessage(), ex);			}			return tempPath;		}	}}

?

  相关解决方案