1.在xml创建一个SurfaceView控件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="${relativePackage}.${activityClass}" ><SurfaceView android:id="@+id/surfaceView"android:layout_width="match_parent"android:layout_height="300dp"/></RelativeLayout>

2.java代码

package com.example.surfaceholder_1;import android.app.Activity;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;public class MainActivity extends Activity {private SurfaceView surfaceView;private MediaPlayer mediaPlayer;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取资源IDsurfaceView=(SurfaceView) findViewById(R.id.surfaceView);//获取视频资源Uri parse = Uri.parse(Environment.getExternalStorageDirectory()+"/bbb.mp4");mediaPlayer=MediaPlayer.create(MainActivity.this, parse);//创建子线程new Thread(){@Overridepublic void run() {// TODO Auto-generated method stubsuper.run();//储存SurfaceHolder holder = surfaceView.getHolder();//监听holder.addCallback(new Callback() {//销毁视图@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}//加载视图@Overridepublic void surfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stub//加载mediaPlayer.setDisplay(holder);//播放mediaPlayer.start();}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}});}}.start();}
}

3.最后在androidmanifest.xml里加上权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

SurfaceHolder视频播放相关推荐

  1. 播放视频android学习笔记---44_在线视频播放器,网络视频解析器,SurfaceView 控件使用方法...

    最近用使开辟的过程中涌现了一个小题问,顺便录记一下因原和法方--播放视频 44_在线视频播放器 ------------------------- 1.注意这里,在模拟器中,android2.2和an ...

  2. 采用Android的MediaPlayer+SurfaceView设计视频播放器

    前言 android视频播放有很多方式(自带videoView等),这里简单说其中一种:MediaPlayer+SurfaceView,一个播放音频,一个播放视频(图像). 大体结构图 BaseMed ...

  3. 22_Android中的本地音乐播放器和网络音乐播放器的编写,本地视频播放器和网络视频播放器,照相机案例,偷拍案例实现

    1 编写以下案例: 当点击了"播放"之后,在手机上的/mnt/sdcard2/natural.mp3就会播放. 2 编写布局文件activity_main.xml <Line ...

  4. 剖析 SurfaceView Callback以及SurfaceHolder

    callback接口: 只要继承SurfaceView类并实现SurfaceHolder.Callback接口就可以实现一个自定义的SurfaceView了,SurfaceHolder.Callbac ...

  5. android学习笔记---44_在线视频播放器,网络视频解析器,SurfaceView 控件使用方法

    44_在线视频播放器 ------------------------- 1.注意这里,在模拟器中,android2.2和android2.1视频是没有播放效果的,这个主要是因为模拟器的原因和程序代码 ...

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

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

  7. Android视频播放

    Android中的音频播放使用的是MediaPlayer类,但是这个类没有提供视频画面的播放位置,所以这里视频的播放显得略有不同,大致分为两种播放方式:直接调用系统的VideoView播放视频或者利用 ...

  8. 简易网络视频播放器android

    简易网络视频播放器android demo: Qvod 1.新建: app\src\main\res\xml\network_security_config.xml 作用是可以发送 http请求 &l ...

  9. 安卓使用MediaPlayer自定义音频视频播放器

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓使用MediaPlayer,一般还要配置一个播放画面SurfaceView,和一个进度条SeekBar. 视频的播放会更改进度条的进度,也可以手动 ...

最新文章

  1. d3d导致cairo不正常
  2. 著名作者网站论文下载
  3. Hadoop源码分析-Context
  4. 如何修改Android应用程序能够使用的默认最大内存值
  5. QT的QDateTimeEdit类的使用
  6. JAVA中文支持指南(Vera Yuanti)
  7. t-sne原理解释_T-SNE解释-数学与直觉
  8. blender视图缩放_如何使用主视图类型缩放Elm视图
  9. codeforces B. Friends and Presents(二分+容斥)
  10. 数据库的两个好帮手:pagehack和pg_xlogdump
  11. CTSC2017APIO2017
  12. python爬虫什么意思-Python为什么叫爬虫?Python与爬虫有什么关系?
  13. 帝国cms后台不停的登录成功
  14. hunnu 10246 最大间隙问题 桶排序+抽屉原理
  15. mysql单表瓶颈_mysql单表性能瓶颈_优化系列 | 实例解析MySQL性能瓶颈排查定位-云栖社区-阿里云...
  16. UiBot If(如果条件成立)
  17. 数据库系统—实体联系模型
  18. 方舟生存进化服务器文件设置,方舟生存进化私人服务器设置教程[多图]
  19. 用python求一元二次方程的解
  20. JavaWeb 图书管理系统(数据库综合实验)

热门文章

  1. BZOJ 3262 陌上花开
  2. 0xff java,Java中0xff的作用(byte0xff)
  3. 微信小程序开发uni-app-8分钟上手开发
  4. 情人节送礼荒?荣耀30Pro流光幻境了解一下
  5. 手机闹钟html,闹钟主题.html · 黄杰琪/app_ Smarter Alarm - Gitee.com
  6. 35岁逐渐知命的年龄,曾经的进取心也被消耗殆尽了,中年危机下真的只能安于现状吗?
  7. Linux内核学习(三)之asm.s和trap.c的关联!
  8. AI安防的狂欢:挖掘新故事、暴露旧隐忧
  9. nexus(maven仓库)搭建配置maven本地私有仓库
  10. 从构造函数看线程安全