final SurfaceView surfaceView = new SurfaceView(StartupActivity.this);

   StartupActivity.this.mediaPlayer = new MediaPlayer();

   surfaceView.setLayoutParams(params);

   reLayout.addView(surfaceView, params);

   // 设置SurfaceView自己不管理的缓冲区

surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

surfaceView.getHolder().addCallback(new Callback() {

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

try {

mediaPlayer.reset();

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

// 设置需要播放的视频

AssetFileDescriptor afd = getAssets().openFd("XXX.mp4");

mediaPlayer.setDataSource(afd.getFileDescriptor(),

afd.getStartOffset(), afd.getLength());

// 把视频画面输出到SurfaceView

mediaPlayer.setDisplay(surfaceView.getHolder());

mediaPlayer.setOnPreparedListener(new OnPreparedListener() {

          @Override

          public void onPrepared(MediaPlayer arg0) {

            // TODO Auto-generated method stub

            // 播放

    mediaPlayer.start();

    Log.i(TAG, "SurfaceView start play");

          }

});

mediaPlayer.prepare();

} catch (Exception e) {

// TODO: handle exception

Log.i(TAG, "SurfaceView "

+ "start play exception : "+ e.getMessage());

}

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

}

});

   // 注销

     if (null!=mediaPlayer)

{

if (mediaPlayer.isPlaying())

{

  mediaPlayer.stop();

}

mediaPlayer.reset();

mediaPlayer.release();

mediaPlayer = null;

}

android下面使用SurfaceView+ mediaPlayer播放视频的更多相关文章

  1. SurfaceView+MediaPlayer播放视频

    SurfaceView拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行行绘制.又由于不占用主线程资源,SurfaceView一方面可以实现复杂而高效的UI,另一方面又不 ...

  2. Android 视频播放器 (二):使用MediaPlayer播放视频

    在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容.也知道VideoView内部封装的就是Med ...

  3. 使用MediaPlayer类和SurfaceView来播放视频

    MediaPlayer可以播放视频,只需需要SurfaceView的配合,SurfaceView主要用于显示MediaPlayer播放的视频流媒体的画面渲染. SurfaceView是配合MediaP ...

  4. android中使用surfaceview+MediaPlayer播放视频

    Android中播放视频主要有两种方式: 使用其自带的播放器.指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型 使用android自带的VideoView,这种方法 ...

  5. android SurfaceView中播放视频 按视频的原始比例播放

    OnPreparedListener mediaPlayerOnPreparedListener = new OnPreparedListener() { @Override public void ...

  6. MediaPlayer简单使用,绑定surfaceView实现播放视频的功能

    转载自 Android MediaPlayer使用方法简单介绍 播放音频 android中播放音频可以使用MediaPlayer类来实现,一下是它的一些方法: 方法名 功能描述 setDataSour ...

  7. 【Android 多媒体应用】使用 MediaPlayer 播放视频

    1.MainActivity.java import android.media.AudioManager; import android.media.MediaPlayer; import andr ...

  8. Android WebView 总结 —— 使用HTML5播放视频及全屏方案

    在APP开发的过程中,会碰到需要在WebView中播放视频的需求,下面讲解一下如何在WebView中使用html5播放视频. 1.让视频在各个Android版本能够正常播放 在AndroidManif ...

  9. Android开发之使用VideoView播放视频

    Android提供了 VideoView组件.它的作用与ImageView类似,仅仅是ImageView用于显示图片.而VideoView用于播放视频. 使用VideoView播放视频的过程例如以下: ...

随机推荐

  1. 重学ps_1

    1,选取 打开图片->点击选取工具->ctrl+c->ctrl+n->ctrl+v 2,去除图片背景 打开你要去除背景的图片->在图层面板中->双击图层把图层改为0 ...

  2. 看JVM就推荐这本书

    话不多说,喜欢JVM的可以加Q群:397196583

  3. 使用太过简单jqprint源码也极其简洁易懂

    就像开发一样, 这篇文档如果没有人关心和维护, 里面的内容就会变得老旧, 过时而不再具有参考价值. 所以, 我希望所有看到并喜欢这篇文档的人都一起来维护它. 放心大胆的提交 Pull Request ...

  4. asp.net core项目发布网站时的选项

    发布网站时的选项 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序. Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的, ...

  5. GCC编译C代码

    C程序的编译过程       常用文件的后缀名: gcc编译c代码 1.gcc 常用编译选项: 2.gcc编译方法 testc.c: #include <stdio.h> int main ...

  6. java 反射获取类的属性 类型 名称和值

    /** * 获取属性类型(type),属性名(name),属性值(value)的map组成的list * */ private List getFiledsInfo(Object o){ Field[ ...

  7. linux 路由

  8. (java oracle)以bean和array为参数的存储过程及dao部分代码

    一.数据库部分 1.创建bean对象 CREATE OR REPLACE TYPE "QUARTZJOBBEAN" as object ( -- Author : Duwc -- ...

  9. Git实用命令手册

    下载代码 git clone <git地址> 用户配置 git config —-global user.name <name> git config —-global use ...

  10. h5 与app交互

    http://www.jianshu.com/p/7151987f012d JSContext *context = [self.webView valueForKeyPath:@"docu ...