Android MediaPlayer和VideoView的使用】的更多相关文章

      MediaPlayer MediaPlayer类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码和播放音视频.它支持三种不同的媒体来源: 本地资源 内部URI,比如你可以通过ContentResolver来获取 外部URL(流) 对于Android支持的媒体格式列表,可见:Supported Media Formats文档 在播放网络上的视频流时,Android原生的MediaPlayer支持两种协议,HTTP和RTSP,这两种协议最大的不同是,R…
Android之视频播放 VideoView if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){   //判断SDCard是否存在     SDExit = true;} else{     SDExit = false;     Toast.makeText(VideoActivity.this, "SD卡不存在!", Toast.LENG…
1.布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_paren…
本文系作者自己学习之所用,文章内容仅出自作者拙劣之思考,问题之处烦请不吝指教. MediaPlayer 能被用来控制音/视频文件或流媒体的回放.Android中以MediaPlayer类作为音视频播放的基础类,围绕着他开展了一系列的处理.学习一个新的模块,最简单的步骤就是找到一个典型的应用程序,通过它的实现,来分析整个模块的数据流和控制流.典型的MediaPlayer在Java处的接口包括视频播放类VideoView以及音频专用MediaPlayer类. 一. 一个简单的视频播放demo app…
Android视频播放之VideoView 1.VideoView类介绍 Android的VideoView组件可以从不同的来源(例如资源文件或内容提供器)读取图像,计算和维护视频的画面尺寸以使其适用于任何布局管理器,并提供一些诸如缩放.着色之类的显示选项,包含在widget下面:android.widget.VideoView.Android中视屏播放框架如下图: 从图中可以看出,VideoView组件进行视频播放的过程可以分为三步: (1)JAVA Framework层,应用程序进来之后到V…
[IT168 技术文档]本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.对于Android这样一个完整又相对复杂的系统,一个MediaPlayer功能的实现不在其具体的功能,而是具体功能如何适应Android系统Android MediaPlayer的主要具体实现在OpenCore的Player中,这部分不是本文的关注点.本文关注的是MediaPlayer系统的架构,其他的一些Android的应用程序也使用类似的架构. 对于开源事业在中国的发展,…
1. 常见错误 error(-38, 0) 我觉得-38表示在当前的MediaPlayer状态下,不能运行你的操作. 详细怎样做请參考:Android MediaPlayer 另外我在其它资料中.发现有人觉得-38定义在:pvmf_return_codes.h文件里: -38: DRM clock is not available or cannot be read 0: Return code for pending completion /* * DRM clock is not avail…
使用android MediaPlayer播放音频文件时,有时会出现prepareasync called in state 8错误. 以下方法可以避免这个异常出现.  第一种方法: private void playAudio(String audioUri){ Uri uri = Uri.parse(audioUri); mMediaPlayer = MediaPlayer.create(getApplicationContext(), uri); try { //在播放之前先判断playe…
[时间:2016-09] [状态:Open] [关键词:android,mediaplayer,播放接口,播放状态图] 引言 本文内容相对简单,作为后续处理的起点,简要整理了Android MediaPlayer的接口层,并且这里只会涉及c层的实现,至于上层的JNI/跨进程调用逻辑,建议参考其他资料. 整理本文的目的仅供个人后续参考使用. MediaPlayer Interface 我们可以在Android源码中找到MediaPlayerInterface的定义如下:(这里只列出接口信息,详细内…
Android MediaPlayer 常用方法介绍 方法:create(Context context, Uri uri) 解释:静态方法,通过Uri创建一个多媒体播放器. 方法:create(Context context, int resid) 解释:静态方法,通过资源ID创建一个多媒体播放器 方法:create(Context context, Uri uri, SurfaceHolder holder) 解释:静态方法,通过Uri和指定 SurfaceHolder [抽象类] 创建一个…
1. 使用android MediaPlayer播放音频文件时,有时会出现prepareasync called in state 8错误. 以下方法可以避免这个异常出现.  第1种方法: private void playAudio(String audioUri){ Uri uri = Uri.parse(audioUri); mMediaPlayer = MediaPlayer.create(getApplicationContext(), uri); try { //在播放之前先判断pl…
本文链接: Android MediaPlayer 基础简介 简单介绍MediaPlayer的基本概念,状态,常用的方法与监听器. 什么是MediaPlayer MediaPlayer类可以用来播放音视频文件,或者是音频流.开发者可以用它来播放本地音频,或者是网络在线音频. MediaPlayer属于android.media包. MediaPlayer的状态 播放控制由状态机控制.在日常生活中,我们常见的音频状态有播放中,暂停,停止,缓冲等等. MediaPlayer的状态有如下几种: Idl…
本文链接: Android MediaPlayer 播放音频 主要介绍使用MediaPlayer播放音频的方式.关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer 基础简介. 为了方便表达,定义变量名为mediaPlayer. MediaPlayer的使用方式 创建MediaPlayer 可以直接 new MediaPlayer,也可以用MediaPlayer提供的create方法创建. mediaPlayer = new MediaPlayer();…
本文链接: Android MediaPlayer 倍速播放,调整播放速度 现在市面上的很多音视频App都有倍速播放的功能,例如把播放速度调整为0.5.1.5.2倍等等. 从Android API 23 (Android M)开始,MediaPlayer支持调整播放速度. 使用的方法是setPlaybackParams,传入一个代表播放属性的类PlaybackParams. 本文介绍如何使用MediaPlayer调整播放速度. MediaPlayer.setPlaybackParams 说明 播…
Android MediaPlayer 在API 23即6.0版本开始支持倍速播放,下面我们来介绍一下如何使用MediaPlayer进行倍速播放. 一.核心接口 MediaPlayer.setPlaybackParams(PlaybackParams params) throws IllegalStateException, IllegalArgumentException 1. 接口说明 (1) 使用这个接口可以进行播放速率的设置. (2) 播放器prepared状态之前调用这个方法不会更改播…
1:videoview循环播放视频 1>xml <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_par…
主要涉及类:MediaPlayer (1) 当一个MediaPlayer对象被创建或者调用reset()方法之后,它处于空闲状态,调用release()方法后处于结束状态 1,一个MediaPlayer对象调用了reset()方法后,再调用其它方法可能会触发OnErrorListener.onError()事件,未调用reset()方法则不会触发 2,当Mediaplayer对象不再被使用时,最好调用release()方法对其进行释放,使其处于结束状态,此时它不能被使用 3,Mediaplaye…
MediaPlayer类可用于控制音频/视频文件或流的播放.关于如何使用这个类的方法还可以阅读VideoView类的文档. 1.状态图对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态.椭圆代表MediaPlayer对象可能驻留的状态.弧线表示驱动MediaPlayer在各个状态之间迁移的播放控制操作.这里有两种类型的弧线.由一个箭头开始的弧代表同步的方法调用,而以双箭头开头的代表的弧线代表异步方法调用. 通过这…
目录: (1)概念解释 : 硬解.软解 (2)Intel关于Android MediaCodec的相关说明 正文: 一.硬解.软解         (1)概念:                 a.硬件解码:硬件解码是图形芯片厂商提出的用GPU资源解码视频流的方案                 b.软件解码:相对于硬件解码,传统的软件解码是用CPU承担解码工作         (2)优点:                 a.硬解:效率高.功耗低.热功耗低                 b.…
MediaPlayer的状态转换图也表征了它的生命周期,如下: 这张状态转换图清晰的描述了MediaPlayer的各个状态,也列举了主要的方法的调用时序,每种方法只能在一些特定的状态下使用,如果使用时MediaPlayer的状态不正确则会引发IllegalStateException异常. Idle 状态:当使用new()方法创建一个MediaPlayer对象或者调用了其reset()方法时,该MediaPlayer对象处于idle状态.这两种方法的一个重要差别就是:如果在这个状态下调用了get…
通过这张图,我们可以知道一个MediaPlayer对象有以下的状态: 1)当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态.当调用了release()方法后,它就处于End状态.这两种状态之间是MediaPlayer对象的生命周期. 1.1) 在一个新构建的MediaPlayer对象和一个调用了reset()方法的MediaPlayer对象之间有一个微小的但是十分重要的差别.在处于Idle状态时,调用getCurrentPosition…
这里提供一些MediaPlayer的简单方法,方便以后熟练的使用它! 1)如何获得MediaPlayer实例: 可以使用直接new的方式: MediaPlayer mp = new MediaPlayer(); 也可以使用create的方式,如: MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了 2) 如何设置要播放的文件: MediaPlayer要播放的文件主要包括3个来源: a. 用户在…
昨天介绍了VideoView播放视频,今天再介绍一种播放视频的方法MediaPlayer和SurfaceView,MediaPlayer播放音频,SurfaceView来显示图像,具体步骤如下: 1.创建MediaPlayer对象,并让它加载指定的视频文件. 2.在界面布局中定义SurfaceView组件,或在程序中创建SurfaceView组件,并为SurfaceView的SurfaceHolder添加Callback监听器. 3.调用MediaPlayer对象的setDisplay(Surf…
最近遇到一个问题,在2.2系统上,公司项目中使用VideoView,第一次播放正常,第二次播放黑屏. 由于公司项目使用lua + android 原生,所以试了下原生的android 的VideoView ,是没有问题的. 而公司的代码在大部分4.0以上设备上是正常的. 经几天的测试研究,发现在VideoView 第二次 play黑屏之后,调用一次view树的invalidate即可.坑死人的bug. 注意不能直接在VideoView 的start之后马上调用invalidate,应该是由于播放…
对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态.椭圆代表MediaPlayer对象可能驻留的状态.弧线表示驱动MediaPlayer在各个状态之间迁移的播放控制操作.这里有两种类型的弧线.由一个箭头开始的弧代表同步的方法调用,而以双箭头开头的代表的弧线代表异步方法调用.   通过这张图,我们可以知道一个MediaPlayer对象有以下的状态: 1)当一个MediaPlayer对象被刚刚用new操作符创建或是调…
[1]使用MediaPlayer实现一般的音频播放 MediaPlayer播放通常的音频文件 MediaPlayer mediaPlayer = new MediaPlayer(); if (mediaPlayer.isPlaying()) { mediaPlayer.reset();//重置为初始状态 } mediaPlayer.setDataSource("/mnt/sdcard/god.mp3"); mediaPlayer.prepare();//缓冲 mediaPlayer.s…
Android Media Playback 原文 The Android multimedia framework includes support for playing variety of common media types, so that you can easily integrate audio, video and images into your applications. You can play audio or video from media files store…
之前用Android自带的VideoView播放在线视频一直没问题的.今天突然碰到无法播放. MediaPalyer返回的错误代码是-1004,API文档上写的是:Bitstream is not conforming to the related coding standard or file spec. 最后查明是由于我用了Mac下的Charles.然后没有开代理服务导致的... 进入系统关闭代理就可以....…
android使用 mediaPlayer 播放video视频过程中, 当用户退出当前播放,再从后台恢复播放时,需要跳转到之前退出的时间点继续播放.使用的方法基本都是 SeekTo 之前的时间点,但是经常遇到恢复播放时位置不准的问题,而且甚至有重头开始播放的现象.这个是因为SeekTo是回到上一时间点附近的关键帧导致的. 针对这个问题,在最新的android 8.0平台上,已经有了新的解决方案: SeekTo() 方法在android O 平台新增了一个多参数的方法: void seekTo(l…
import android.content.Context; import android.media.MediaPlayer; import xxxx.R; public class MediaUtil { MediaPlayer mPlayer=null; Context context; public MediaUtil(Context context){ this.context=context; } //释放 public void Release() { if (mPlayer !…