Android中音频和视频的播放我们最先想到的就是MediaPlayer类了,该类提供了播放.暂停.停止.和重复播放等方法.该类位于android.media包下,详见API文档.其实除了这个类还有一个音乐播放类那就是SoundPool,这两个类各有不同分析一下便于大家理解 MediaPlayer: 此类适合播放较大文件,此类文件应该存储在SD卡上,而不是在资源文件里,还有此类每次只能播放一个音频文件. 此类用法如下: 1.从资源文件中播放 MediaPlayer   player  =   n…
from://http://blog.csdn.net/thl789/article/details/7422931 Android是多任务系统,Audio系统是竞争资源.Android2.2之前,没有内建的机制来解决多个程序竞争Audio的问题,2.2引入了称作AudioFocus的机制来管理对Audio资源的竞争的管理与协调.本文主要讲解AudioFocus的使用. 按照AudioFocus的机制,在使用Audio之前,需要申请AudioFocus,在获得AudioFocus之后才可以使用A…
Android中播放视频主要有两种方式: 使用其自带的播放器.指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型 使用android自带的VideoView,这种方法太简单就不介绍了 使用SurfaceView+MediaPlayer,这种方式效果比较好,这里也重点介绍 SurfaceView从android 1.0就有了,十分好用.一般来说,UI对刷新都需要在UI线程中完成,但是,surfaceview可以在非UI线程中完成刷新.这样以来就很方便了,比如在线播…
1.Android中音频播放的方式和区别. MediaPlayer:主要用于播放音频,可以播放视频,但是一般不用其进行视频播放. SoundPool:主要用于播放一些短促的声音片段,主要优势是cpu资源占有量低,反应延迟小. 2.优缺点: MediaPlayer延时时间较长,且资源占用率高.不支持多个音频同时播放. SoundPool 使用音效池的概念来管理多个短促的音效,例如它可以开始就加载 20 个音效,以后在程序中按音效的 ID 进行播放. SoundPool 主要用于播放一些较短的声音片…
最近在做一个demo,要求播放视频,记录一下.使用的是VideoView控件,如果播放网络视频的话,视频应该是渐进流式的,格式嘛,大家应该都知道,一般是H.263或者H.264格式的扩展名为3gp或者mp4的视频文件,或者MPEG4 SP的3gp文件.  放个网络播放的测试视频地址:http://f3.3g.56.com/15/15/JGfMspPbHtzoqpzseFTPGUsKCEqMXFTW_smooth.3gp 播放网络视频的代码如下:  Java代码  videoView = (Vid…
Audio 输出通道有很多,Speaker.headset.bluetooth A2DP等.通话或播放音乐等使用Audio输出过程中,可能发生Audio输出通道的切换.比如,插入有线耳机播放音乐时,声音是从耳机发出的:而此时拔出耳机,Audio输出通道会发生切换.如果音乐播放器不做处理,Audio输出是被切换到扬声器的,声音直接从Speaker发出.我们在编写程序时,要捕获并按照需求来处理这样的事,本文就是讲解如何处理的. Android中可以通过android.media.AudioManag…
用Soundpool可以播一些短的反应速度要求高的声音, 比如游戏中的爆破声, 而Mediaplayer适合播放长点的. MediaRecorder主要用来录音. SoundPool载入音乐文件使用了独立的线程,不会阻塞UI主线程的操作. 但是这里如果音效文件过大没有载入完成,我们调用play方法时可能产生严重的后果, 这里AndroidSDK提供了一个SoundPool.OnLoadCompleteListener类来帮助我们了解媒体文件是否载入完成, 我们重载onLoadComplete(S…
VideoView一般结合MediaController类使用,它会提供一个友好的图形界面,通过该界面可以控制视频的播放 package com.test.videoview; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.graphics.PixelFormat; import android.view.Menu; import android.widg…
soundlPool 用于小音频的播放多个同时播放. 使用步骤: 步骤一: 首先下载音频文件可以将其放入assets文件夹下或者res下的raw文件夹下,区别在于assets下可以再新建文件夹二raw不行,assets内部单个文件超过1m时可能存在bug而raw不会.soundpool的音频文件大小不能超过1M同时时间超过5-6秒可能会出错. 步骤二: 构造实例 SoundPool(int maxStreams, int streamType, int srcQuality) 参数依次是: ①指…
前文讲到音频解码,将音频解码,并且输入到PCM文件,这里将音频通过AudioTrack直接输出 音频播放说明 在Android中自带的MediaPlayer也可以对音频播放,但其支持格式太少 使用ffmpeg可以支持更多格式 常用的音频播放有很多种方式,但播放PCM就只有OpenSL和AudioTrack 这里使用AudioTrack进行实现 在上文中已经实现了音频的解码,而在本文中,将对解码完成的音频进行播放 在解码完成以后不是将其转化为PCM存储,而是直接进行播放 为何要播放PCM格式音频,…
--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePicker…
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePickerController拍照…
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePickerController拍照…
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePickerController拍照…
一 什么是音频的采样率和采样大小 自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码.即PCM编码.PCM通过抽样.量化.编码三个步骤将连续变化的模拟信号转换为数字编码. 抽样:在音频采集中叫做采样率. 由于声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线.波是无限光滑的,弦线可以看成由无数点组成,由于存储空间是相对有限的,数字编码过程中,必须对弦线的点进行采样.采样的过程就是抽取某点的频率值,很显然,在一秒中内抽取的点越多,获取得频率信…
SoundPool 一.基本概念 在Android应用程序的开发过程中,经常需要播放多媒体文件,也许最先想到的会是MediaPlayer类了,该类提供了播放.暂停.停止及重复播放等功能性方法(该类位于android.media包下,详见API文档).也可参考博文http://www.cnblogs.com/tgyf/p/4700177.html. 但使用MediaPlayer类的问题是占用资源较多,对于游戏这样复杂.简短配音多的应用可能不是很适合,这时候就需要用到SoundPool类了,其定义在…
SoundPool —— 适合短促且对反应速度比较高的情况(游戏音效或按键声等) 下面介绍SoundPool的创建过程: 1. 创建一个SoundPool (构造函数) public SoundPool(int maxStream, int streamType, int srcQuality) maxStream —— 同时播放的流的最大数量streamType —— 流的类型,一般为STREAM_MUSIC(具体在AudioManager类中列出)srcQuality —— 采样率转化质量,…
一.MediaPlayer对象常用方法介绍: MediaPlayer mediaPlayer = new MediaPlayer(); if (mediaPlayer.isPlaying()) { mediaPlayer.reset();//重置为初始状态 } mediaPlayer.setDataSource("/mnt/sdcard/god.mp3"); mediaPlayer.prepare();//缓冲 mediaPlayer.start();//开始或恢复播放 mediaPl…
简介 如果应用程序经常播放密集.急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了.因为MediaPlayer存在如下缺点: 1) 延时时间较长,且资源占用率高. 2) 不支持多个音频同时播放. Android中除了MediaPlayer播放音频之外还提供了SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就加载20个音效,以后在程序中按音效的ID进行播放. SoundPool主要用于播放一些较短的声音片段,与Med…
前言 前几天一直在研究RxJava2,也写了记录了几篇博客,但因为工作任务原因,需要研究音频相关的知识,暂时放下Rxjava,本文的demo中,MediaPalyer 部分使用RxJava编写一点逻辑,其中涉及,RxJava2的被压.解除订阅等知识点,虽然简单,最起码没有丢了RxJava,后续Rxjava会继续研究,做记录. andorid提供了对声音和视频处理的api包android.media.本文编写了针对这几种方式播放的Demo,文章最后贴出. MediaPlayer播放音频 对于and…
demo地址:https://github.com/baiqiantao/PermissionTest.git 一个大坑:SoundPool最多只能播放时长10s左右.大小70kb左右(这些值是我多次测试而来,并不确定)的音频! 官方文档 文档位置:https://developer.android.google.cn/reference/android/media/SoundPool.html The SoundPool class manages and plays audio resour…
分类:C#.Android.VS2015: 创建日期:2016-03-11 一.简介 MediaPlayer:适合每次播放一个音频资源或者音频文件的场合. SoundPool:适合同时播放多个音频资源或者音频文件的场合. 二.用MediaPlayer播放 在安卓系统中,播放音频最简单的方法是使用内置的媒体播放器(MediaPlayer类).MediaPlayer既可以播放本地文件,也可以播放来自URL的网络数据流. 1.创建MediaPlayer实例 有两种创建MediaPlayer实例的办法,…
PS:今天搞了一下如何实现音频播放...结果被坑了,看书上写的代码是挺简单的,但是有个函数就是死活没看懂,这真是受不了...最后才弄明白,原来是一个实现异步任务的一个类...这个类使用java.util.concurrent这个高效框架来管理线程以及任务的执行...可以解决匿名线程存在的问题... 学习内容: 1.理解AsyncTask 2.如何实现音频播放... 1.AsyncTask   AsyncTask的特点就是实现一个任务在另一个线程内执行,而不是在主函数中进行执行,这样就不会导致主线…
MediaPlayer: 此类适合播放较大文件,此类文件应该存储在SD卡上,而不是在资源文件里,还有此类每次只能播放一个音频文件. 1.从资源文件中播放 MediaPlayer player = new MediaPlayer.create(this,R.raw.test); player.stare(); 2.从文件系统播放 MediaPlayer player = new MediaPlayer(); String path = "/sdcard/test.mp3"; player…
状态机.流程图.生命周期 对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态. 椭圆代表MediaPlayer对象可能驻留的状态,弧线表示驱动MediaPlayer在各个状态之间迁移的播放控制操作. 这里有两种类型的弧线:由一个箭头开始的弧代表同步的方法调用,而以双箭头开头的代表的弧线代表异步方法调用. 通过这张图,我们可以知道一个MediaPlayer对象有以下的状态: 1.当一个MediaPlayer对象被刚…
当你坐公交无聊的时候,当你淹没在地铁中人潮中的时候,你是否想内心保持一份的安静呢,那么请带上耳机,打开你的音乐播放器,听一首老歌带你进入宁静的世界,音乐播放这个功能在智能手机出现之前,诺基亚时代,甚至追溯到最开始的大哥大的时候都是属于音频的范畴.Android中播放音频不可避免的使用的一个类是Mediaplayer,视频调用也是这个类.扯远了,开始正题吧: 基础维护 首先这个时候来看看要实现的效果吧: 布局如下: <LinearLayout xmlns:android="http://sc…
AudioTrack是Android中比较偏底层的用来播放音频的接口,它主要被用来播放PCM音频数据,和MediaPlayer不同,它不涉及到文件解析和解码等复杂的流程,比较适合通过它来分析Android系统播放音频数据的过程.下面是https://developer.android.com/reference/android/media/AudioTrack.html 对AudioTrank的描述: 1.应用层使用AudioTrack播放PCM音频数据 //MainActivity.java…
最近接触到的一个项目, 有音频播放.切换播放速率和拖动进度到某处播放的需求 ,由于之前只是见过并没有尝试过切换播放速率 , 于是开始调研并最终实现,下面简单记录一下这次的调研过程. MediaPlayer 播放音频最先想到的就是MediaPlayer这个Android提供的原生API了,在Android 6.0+(23+)MediaPlayer可以通过setSpeed来改变播放速率 在代码中,我们需要: // 设置音乐播放速度 public static void changeplayerSpe…
Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有: 播放.暂停功能: 进度条显示播放进度功能 拖动进度条改变进度功能: 后台播放功能: 停止功能: 退出功能: 代码实现 导入歌曲到手机SD卡的Music目录中,这里我导入了4首歌曲:仙剑六里面的<誓言成晖>.<剑客不能说>.<镜中人>和<浪花>,也推荐大家听…
1.获取MediaPlayer实例 (1)可以直接通过new或者create方式: 调用setDataSource和create的区别是,create时已经执行了MediaPlayer.prepare(),而setDataSource需要手动执行. MediaPlayer mPlayer = new MediaPlayer(); mPlayer.setDataSource(); MediaPlayer mPlayer = MediaPlayer.create(); (2)获取用户事先导入到/re…