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>
运行结果如下图:

分享到:
相关推荐
2.Android开发环境搭建与编译 3.Android编译过程分析 4.android.mk初识 5.Android.mk学习1 6.Android.mk学习2 7.Android.mk学习3 8.Android启动课程大纲 9.Android启动模式 10.init启动分析 11.走入init启动脚本 12....
第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 ...
《Android开发常用技术初探》 在移动互联网的飞速发展中,Android系统占据了智能手机市场的主要份额,成为开发者和用户关注的焦点。Android以其开源、灵活的特性吸引了众多开发者,不断推动着应用程序的创新和发展...
工程里包含了海康威视android sdk(网络库+播放库) 官网上只有android 播放库下载,没有...可以参考我的博文:海康威视远程监控Android端APP开发初探 http://blog.csdn.net/lihong08/article/details/9355691
通过这样的教学内容设计,学生不仅可以掌握Android开发的基本原理,还能提升实际项目开发和团队协作的能力,为将来在Android平台上的创新和应用开发打下坚实的基础。在当前软件技术日新月异的时代,熟悉并精通...
第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android...
第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android...
第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 ...
第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 ...
为了增强实践性,课程资源应包含更多实际案例、项目开发实例和最新的Android开发工具,以促进学生在实践中学习和掌握知识。同时,开放在线平台,提供丰富的学习资料和互动讨论空间,有利于提高学生自主学习的积极性...
### Android开发资料知识点总结 #### 一、Android开发概述 **1.1 Android基本概念** - **1.1.1 Android简介**: Android是由Google公司主导研发的基于Linux内核的操作系统,主要用于移动设备如智能手机和平板电脑...
在"OpenCV初探:二、Android程序示例 源代码"中,我们可以预期获得一些关于如何在Android应用中集成OpenCV的实例代码。这些源代码将帮助开发者理解如何在Android环境下设置和使用OpenCV库,从而实现各种视觉任务。 ...
9.86、ANDROID自动化测试初探 324 9.86.1、捕获Activity上的Element 324 9.86.2、Hierarchyviewer 捕获Element的 328 9.86.3、架构实现 330 9.86.4、模拟键盘鼠标事件(Socket+Instrumentation实现) 332 9.86.5、再...
第1课1、手把手教React Native实战之环境搭建【Mac真机】同时调试开发Android&IOS; 第2课2、手把手教React Native实战之从React到RN 第3课3、手把手教React Native实战之flexbox布局(RN基础) 第4讲4、手把手教React ...
- **开发体验初探**:介绍了Flutter的开发流程和热重载功能,热重载使得开发者可以在运行时快速看到代码更改的效果。 - **编写第一个Flutter应用**:引导开发者通过一个简单的“Hello, World”示例了解Flutter的基本...
FingerGestures研究院之初探Unity手势操作(一) iTween研究院之学习笔记Move移动篇(一) Android研究院之应用程序对话框大合集(一) Cocos2D研究院之构建游戏开发...Unity3D视频开发教程之开始学习Unity(一)
Java被应用于众多领域,如企业级应用开发、Android移动开发、大数据处理等,因此,提供在线开放课程能够满足不同背景的学习者需求,无论他们是在校学生还是职场人士。 课程建设的关键在于内容的设计。对于Java课程...
《打飞机小游戏——Android开发初探》 在Android开发领域,打飞机小游戏作为一个经典案例,深受初学者喜爱。它不仅简单易懂,而且涵盖了Android应用开发的基础知识点,为开发者提供了良好的实践平台。本文将深入...
掌握这些基础知识对于理解Android图形编程至关重要,因为Kotlin是现代Android开发的首选语言。 2. **Android视图系统** Android的视图系统是构建用户界面的核心,包括View和ViewGroup。课程将讲解如何创建自定义...
开发者需要面对各种挑战,如多线程和多进程的同步问题、网络socket编程(B/S和C/S框架)、QT界面开发,甚至Android应用开发。这些都要求开发者具备灵活的问题解决能力,善于利用搜索引擎和社区资源。 总的来说,"跟...