surfaceView:首先要了解视频一般是单位时间内显示大量的图片。例如常见的1秒内显示24张图片,surfaceView也是一样,surfaceView采用的是       缓冲机制,内部有两个子线程,他们的作用都是解码图像和前台显示,当A线程执行前台显示时,B线程在解码图像,B线程解码图像完成后开始前台显示,此时A线程又开始解码图像,就这样AB线程来回切换。
surfaceHolder类似电视的显示器,surfaceView类似电视机。可通过mediaPlayer.setDisplay(holder),让视频在surfaceView上显示。

可通过surfaceHolder的回调函数holder.addCallback来观察surfaceHolder的生命周期。当屏幕最小化时surfaceView会被销毁执行surfaceDestroyed方法,因此市面上的视频播放器一般的解决方法是,当surfaceView销毁时,停止播放,即执行mediaPlayer.stop(),并且执行mediaPlayer.getCurrentPosition();记录下当前播放的位置,当屏幕再次打开时执行surfaceCreated方法,surfaceHolder再次被创建,执行mediaPlayer.seekTo(position);从上次销毁时记录的位置开始播放。

参考:视频播放器

SurfaceView和SurfaceHolder相关推荐

  1. 【Android笔记60】Android之多媒体播放SurfaceView和SurfaceHolder介绍

    这篇文章,主要介绍Android中和多媒体播放相关的两个类SurfaceView和SurfaceHolder. 目录 一.多媒体(视频播放) 1.1.Surface和SurfaceView (1)Su ...

  2. Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系

    转载请包含网址:http://blog.csdn.net/pathuang68/article/details/7351317 一.Surface Surface就是"表面"的意思 ...

  3. android surfaceholder的数据,Surface、SurfaceView、SurfaceHolder详解

    一.Surface Surface就是"表面"的意思.在SDK的文档中,对Surface的描述是这样的:"Handle onto a raw buffer that is ...

  4. surfacecontrol.java_简单说说JAVA层中Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系...

    1.Surface Surface extends Object implements Parcelable java.lang.Object android.view.Surface Class O ...

  5. SurfaceView、SurfaceHolder与Surface

    相关文章 SurfaceView.SurfaceHolder与Surface TextureView.SurfaceTexture与Surface 按照官方文档的说法,SurfaceView继承自Vi ...

  6. surfaceview 和surfaceholder的理解和使用

    SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制).但是在其他线 ...

  7. Android之——Surface、SurfaceView与SurfaceHolder.Callback初探

    一.Surface    Surface在SDK的文档中的描述是这样的:Handle onto a raw buffer that is being managed by the screen com ...

  8. SurfaceView surface SurfaceHolder制作简单的相机

    简单的相机界面布局 <?xml version="1.0" encoding="utf-8"?> <android.support.desig ...

  9. View,SurfaceView,SurfaceHolder

    View:对于绘画来说,最重要的步骤是重载 onDraw方法并且修改画布Canvas. SurfaceView:1,You can control the format of this surface ...

最新文章

  1. java 安装界面广告_用javascript实现仿163的js广告向下挤压页面的效果
  2. 虚拟机无法访问主机mysql_解决虚拟机linux端mysql数据库无法远程访问
  3. 5G 标准 — R17
  4. phpshe b2c商城系统配置nginx支持pathinfo和rewrite的写法
  5. Memtest86-7.1内存测试工具
  6. linux 指定库名 登录mysql_Linux下指定mysql数据库数据配置主主同步的实例
  7. 如何备份和还原您的Kubernetes集群资源和持久卷?
  8. 打开d盘由于这台计算机的限制,又出现限制我想打开D盘、E盘,就是打不开,电脑提示:限制本 爱问知识人...
  9. js中 var a= b || c;
  10. java中数组输出空格_如何使用数字元素和空格分割字符串并将其存储到Java中的可索引数组中?...
  11. op手机突然显示无服务器,op手机 云服务器
  12. iOS8 UIAlertView键盘闪一下的问题
  13. 计算机WIN7动态硬盘分区,如何创建Win7虚拟磁盘分区
  14. android 视频上传网络异常,App上传视频(或大文件)失败怎么办?
  15. SCC(五):ACT
  16. //菱形,内藏十字架
  17. 微信小程序Day2学习笔记
  18. 单片机指令MOV、MOVC、MOVX的区别与联系
  19. 计算机组成原理——8086 CPU寄存器
  20. 【转】初探计算机视觉的三个源头、兼谈人工智能

热门文章

  1. 武汉BOTOX瘦脸好不好
  2. 【棋盘问题】-马走日
  3. 代码随想录算法训练营第七天| 454.四数相加II 、383. 赎金信、15. 三数之和、18. 四数之和
  4. Can‘t resolve ‘element-plus/lib/el-button‘报错
  5. Android Gradle Task详解
  6. mybatis if标签判断字符串是否相等
  7. SharePoint 企业搜索-PowerShell
  8. 堆叠之实战,两台交换机一根堆叠线如何做堆叠?三台交换机三根堆叠线呢?
  9. 华为交换机ssh远程登录配置命令
  10. Pytorch model.train()