Android开发之初探视频的播放

Android开发之初探视频的播放

/*

* Android开发之初探视频的播放

* 北京Android俱乐部群:167839253

* Created on: 2011-8-24

* Author: blueeagle

* Email: liujiaxiang@gmail.com

*/

Android下视频的播放跟音频的播放是有一些区别的。需要有一个空间来存放视频文件。关于视频的播放其实费了一点功夫,程序代码很简单,但是对于播放,可能会出这样那样的问题,现在总结一下,步骤如下:

1.创建sdcard的镜像文件,可以在命令行下输入mksdcard 512M C:\sdcard.img

2.在Eclipse的window下找到Preferences菜单,然后点击Android->launch然后在Default emulator Options中填上“-sdcard C:\sdcard.img”

3.运行模拟器

有些时候,这样并不能成功,可以直接push到模拟器中。注意一定要选择一个小一点的3gp文件。

代码如下:

/* * Android开发之视频的播放 * MyVideo.java * Created on: 2011-8-24 * Author: blueeagle * Email: liujiaxiang@gmail.com */ package com.blueeagle; import android.app.Activity; import android.graphics.PixelFormat; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MyVideo extends Activity implements OnClickListener,SurfaceHolder.Callback{ String path = "/data/222.3gp"; Button play_button; Button pause_button; boolean isPause = false; SurfaceView mySurfaceView; MediaPlayer myMediaPlayer; SurfaceHolder surfaceHolder; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); play_button = (Button)findViewById(R.id.myButton); play_button.setOnClickListener(this); pause_button = (Button)findViewById(R.id.myButton2); pause_button.setOnClickListener(this); getWindow().setFormat(PixelFormat.UNKNOWN); mySurfaceView = (SurfaceView)findViewById(R.id.mySurfaceView); surfaceHolder = mySurfaceView.getHolder(); surfaceHolder.addCallback(this); surfaceHolder.setFixedSize(176,144); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); myMediaPlayer = new MediaPlayer(); } @Override public void onClick(View v) { // TODO Auto-generated method stub if(v==play_button) { isPause = false; System.out.println(path); playVideo(path); } else if(v==pause_button){ if(isPause == false){ myMediaPlayer.pause(); isPause = true; } else{ myMediaPlayer.start(); isPause = false; } } } private void playVideo(String strPath){ if(myMediaPlayer.isPlaying()==true){ myMediaPlayer.reset(); } myMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); myMediaPlayer.setDisplay(surfaceHolder);//设置Video影片以SurfaceHolder播放 try{ myMediaPlayer.setDataSource(strPath); myMediaPlayer.prepare(); } catch(Exception e){ e.printStackTrace(); } myMediaPlayer.start(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub } @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub } }


main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <SurfaceView android:id = "@+id/mySurfaceView" android:layout_width="320px" android:layout_height="200px"> </SurfaceView> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="播放"/> <Button android:id="@+id/myButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="暂停"/> </LinearLayout> </LinearLayout>


运行结果如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值