android 视频播放器模板

来源:互联网 发布:荣耀盒子pro与网络连接 编辑:程序博客网 时间:2024/06/07 13:45
界面代码如下:
<span style="font-family: Arial, Helvetica, sans-serif;"><?xml version="1.0" encoding="utf-8"?>  </span>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_height="fill_parent"    android:layout_width="fill_parent"    android:orientation="vertical">      <SurfaceView android:id="@+id/surfaceView1"          android:layout_height="600dp"         android:layout_width="700dp"/>    <LinearLayout android:layout_width="match_parent"        android:layout_height="wrap_content">        <Button android:id="@+id/stopMedia"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="stop"/>    </LinearLayout>    </LinearLayout>
播放器代码:
package com.p001_player.test;
import java.io.IOException;import android.app.Activity;import android.media.AudioManager;import android.media.MediaPlayer;import android.os.Bundle;import android.util.Log;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class TestPlayerActivity extends Activity {<span style="white-space:pre"></span>private SurfaceView surfaceView;<span style="white-space:pre"></span>private MediaPlayer mediaP;<span style="white-space:pre"></span>// String url = "/mnt/sdcard/PFO Animation.mp4";<span style="white-space:pre"></span>private Button stopButton;<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>protected void onCreate(Bundle savedInstanceState) {<span style="white-space:pre"></span>super.onCreate(savedInstanceState);<span style="white-space:pre"></span>setContentView(R.layout.surfaceview);<span style="white-space:pre"></span>// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);<span style="white-space:pre"></span>surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView1);<span style="white-space:pre"></span>mediaP = new MediaPlayer();<span style="white-space:pre"></span>stopButton = (Button) findViewById(R.id.stopMedia);<span style="white-space:pre"></span>surfaceView.getHolder().setKeepScreenOn(true);<span style="white-space:pre"></span>surfaceView.getHolder().addCallback(new SurfaceViewLis());<span style="white-space:pre"></span>stopButton.setOnClickListener(new OnClickListener() {<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void onClick(View v) {<span style="white-space:pre"></span>// TODO Auto-generated method stub<span style="white-space:pre"></span>if (mediaP.isPlaying())<span style="white-space:pre"></span>mediaP.stop();<span style="white-space:pre"></span>}<span style="white-space:pre"></span>});<span style="white-space:pre"></span>}<span style="white-space:pre"></span>public void play() throws IllegalArgumentException, SecurityException,<span style="white-space:pre"></span>IllegalStateException, IOException {<span style="white-space:pre"></span>mediaP.reset();<span style="white-space:pre"></span>Log.e("mediaPlayer", "mediaP2:"+mediaP);<span style="white-space:pre"></span>mediaP.setAudioStreamType(AudioManager.STREAM_MUSIC);<span style="white-space:pre"></span>mediaP.setDataSource("/data/app/PFO Animation.mp4");<span style="white-space:pre"></span>// 把视频输出到SurfaceView上<span style="white-space:pre"></span>mediaP.setDisplay(surfaceView.getHolder());<span style="white-space:pre"></span>mediaP.prepare();<span style="white-space:pre"></span>mediaP.start();<span style="white-space:pre"></span>}<span style="white-space:pre"></span>private class SurfaceViewLis implements SurfaceHolder.Callback {<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void surfaceCreated(SurfaceHolder holder) {<span style="white-space:pre"></span>try {<span style="white-space:pre"></span>Log.e("mediaPlayer", "mediaP1:"+mediaP);<span style="white-space:pre"></span>play();<span style="white-space:pre"></span>} catch (IllegalArgumentException e) {<span style="white-space:pre"></span>e.printStackTrace();<span style="white-space:pre"></span>} catch (SecurityException e) {<span style="white-space:pre"></span>e.printStackTrace();<span style="white-space:pre"></span>} catch (IllegalStateException e) {<span style="white-space:pre"></span>e.printStackTrace();<span style="white-space:pre"></span>} catch (IOException e) {<span style="white-space:pre"></span>e.printStackTrace();<span style="white-space:pre"></span>}<span style="white-space:pre"></span><span style="white-space:pre"></span>}<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void surfaceChanged(SurfaceHolder holder, int format, int width,<span style="white-space:pre"></span>int height) {<span style="white-space:pre"></span>// TODO Auto-generated method stub<span style="white-space:pre"></span>}<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void surfaceDestroyed(SurfaceHolder holder) {<span style="white-space:pre"></span>// TODO Auto-generated method stub<span style="white-space:pre"></span>}<span style="white-space:pre"></span>}<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>protected void onPause() {<span style="white-space:pre"></span>if (mediaP.isPlaying()) {<span style="white-space:pre"></span>// 保存当前播放的位置<span style="white-space:pre"></span>// postion = mediaP.getCurrentPosition();<span style="white-space:pre"></span>mediaP.stop();<span style="white-space:pre"></span>}<span style="white-space:pre"></span>super.onPause();<span style="white-space:pre"></span>}<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>protected void onDestroy() {<span style="white-space:pre"></span>if (mediaP.isPlaying())<span style="white-space:pre"></span>mediaP.stop();<span style="white-space:pre"></span>mediaP.release();<span style="white-space:pre"></span>super.onDestroy();<span style="white-space:pre"></span>}}
该代码没有提供网上下载视频功能,需提前在/data/app/目录下放入播放的视频,该代码视频名称为PFO Animation.mp4
0 0
原创粉丝点击