多媒体概述SoundPool播放音效
来源:互联网 发布:在电脑淘宝怎么买东西 编辑:程序博客网 时间:2024/05/03 08:23
package com.example.tyxiong.myapplication;import android.app.Activity;import android.content.res.AssetManager;import android.media.AudioAttributes;import android.media.AudioManager;import android.media.MediaPlayer;import android.media.SoundPool;import android.os.Build;import android.os.Bundle;import android.view.View;import java.io.IOException;import java.util.HashMap;import java.util.Map;/*多媒体应用开发... 1 概述:Android提供了常见的音频和视频编码解码机制... 2 MediaPlayer用来播放音频. 2缺点: 1 资源占用量较高,延迟. 2 无法同时多个音频同时播放 2静态方法:create()从指定Uri/resid来装载音频文件,并返回MediaPlayer对象.-->start()/stop()/pause()可以进行控制了. 8实例方法(new对象):4个setDataSource()方法加载音频文件+3个控制方法+ prepare()/真正加载音频文件 prepareAsync()/异步的不阻塞线程-->start()...可循环加载音频. 4个注册监听.MediaPlayer还有监听方法...播放完成监听器/播放错误监听器/当调用prepare()监听器/当调用seek()方法监听器. 常见播放4种资源来源音频文件步骤: 一 播放应用的资源文件:2步. 1 create()静态方法,加载资源文件,生成MediaPlayer对象. 2 start()... 二 应用原始资源assets目录文件6步: 1 获取AssetsManager对象, context getAssets() 2 AssetFileDescriptor对象 实例方法openFd() 3 FileDescriptor 实例方法getFileDescriptor() 4 setSourceData()加载音频文件(未真正加载) 5 prepare()/prepareAsync()加载音频 6 start()... 三 SD卡上的资源文件(SD卡上文件访问步骤不包括):3步 1 new MediaPlayer对象,setSourceData()加载资源 2 prepare() 3 stat() 四 网络上的音频文件:3步 1 创建Uri对象; 加载网络资源create()静态方法/setDataSource()实例方法(以下为该方式) 2 prepare() 3 start()//除了原始资源,,,全部为3步..(用create()就无须prepare()2步; 用setSourceData()就要prepare()3步)音乐特效控制--均衡器 重低音 音场 音乐波形 都依赖于AudioEffect及其子类...SoundPool 使用场景为密集,播放短促的音效..4个特点: 1 利用音乐池来管理多个音效.一开始可加载多个音效 2 资源占用小 3 根据音效的Id来播放 4 可自行设置声音品质,音量,播放比率. 4个实例方法load()加载资源,--返回值为该音效的ID +1个play(soundId,leftVolume,rightVolume,priority,loop,rate)播放. ---通过其内部类Builder来构造实例, 通常用HashMap<int int>来管理声音. 使用步骤4步: 1 AudioAttributes对象(利用Builder,设置对象属性(指定用处/指定音效类型),build()对象) 2 SoundPool.Builder对象, 为SoundPool设置属性(如最大音频数,音效池属性(需要AudioAttributes参数))..),build() SoundPool对象. 3 对象方法load()返回值为该音效的ID加载资源--HashMap<int,int>来管理 4 play()插入指定ID音效.VideoView:与ImageView相似,同为widget包下的组件.. 继承了SurfaceView---View5个实例方法: setVideoPath()/setVideoURI()加载指定视频+ 3个控制方法 使用步骤3步: 1 VideoView实例化,(布局文件中/new) 2 setVideoXxx()加载视频资源 3 start()方法... 以上第3步可,结合MediaController类(提供了友好的图形控制界面,控制视频播放) videoView.setMediaController(mController); mController.setMediaPlayer(videoView);//播放对象与控制对象相互绑定... -推荐--也可以通过MediaPlayer和SurfaceView结合来播放视频,,MediaPlayer可播放音频和视频--没有提供图像输出界面(借助SurfaceView) MediaRecorder录制音频: 通过麦克风来录制音频... 使用步骤8步(3-4顺序) 1 创建MediaRecorder对象. 2 对象的setAudioSource()设置声音来源--MediaRecorder.AudioSource.MIC 3 setOutputFormat()设置音频输出格式 4 setAudioEncoder()/setAudioEncodingBitRate() 编码格式/编码位率/采样率 5 setOutputFile() 设置输出路径 6 prepare()准备 7 start()开始 8 stop()停止--release()释放资源. ---RECORD_AUDIO录制声音权限 以下演示soundPool播放音效....* */public class MainActivity extends Activity { MediaPlayer mediaPlayer; SoundPool.Builder builder; private AudioAttributes attributes; private SoundPool soundPool; private AssetManager assets; private Map<Integer, Integer> map = new HashMap<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//SoundPool.Builder AudioAuttributes 5.0出的. builder = new SoundPool.Builder(); attributes = new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_GAME) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build(); builder.setAudioAttributes(attributes); soundPool = builder.setMaxStreams(10) .build(); } else { soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 1); } assets = getAssets(); try { int i = 0; String[] list = assets.list("");//assets下有sounds webkit image目录 ""代表assets目录 // "abc"代表assets下的abc目录 for (String temp : list ) { if (temp.endsWith(".mp3")) map.put(i++, soundPool.load(assets.openFd(temp), 1));// map.size(); } } catch (IOException e) { e.printStackTrace(); } } public void play0(View view) { soundPool.play(map.get(0), 1.0f, 1.0f, 1, 0, 1); } public void play1(View view) { soundPool.play(map.get(1), 1.0f, 1.0f, 1, 0, 1); } @Override protected void onDestroy() { super.onDestroy(); if (soundPool != null) { soundPool.release(); soundPool = null; } }}
0 0
- 多媒体概述SoundPool播放音效
- 初学Android,多媒体之使用SoundPool播放音效(七十六)
- 初学Android,多媒体之使用SoundPool播放音效
- android SoundPool 音效播放
- 使用SoundPool播放音效
- 使用SoundPool播放音效
- android SoundPool播放音效
- android SoundPool 音效播放
- SoundPool播放音效
- 使用SoundPool播放音效
- Android多媒体开发 音乐播放(加带进度条、时间显示)以及使用SoundPool播放音效
- Android多媒体开发 音乐播放(加带进度条、时间显示)以及使用SoundPool播放音效
- 使用SoundPool播放游戏音效
- Android应用:SoundPool 播放音效
- android 游戏音效播放 SoundPool
- SoundPool-代替MediaPlayer-播放音效
- android SoundPool播放音效(一)
- android SoundPool播放音效(二)
- C语言中static加在函数声明前
- Spring mvc单元测试
- 修改配置文件信息
- static关键字
- Java二维数组
- 多媒体概述SoundPool播放音效
- 【文智背后的奥秘】系列篇——基于CRF的人名识别
- java集合-HashMap
- GUI程序与自己封装的DLL逻辑库 利用回调交互的时候发生崩溃
- the difference of heap and stack
- PyCharm 教程(五)断点 调试
- 腾讯云CMQ消息队列测试
- 关于java处理内存泄露与内存溢出的学习总结
- VR学习第五节:VR+游戏