android 视频播放器模板

界面代码如下:
<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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值