前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android多媒体应用

Android多媒体应用

作者头像
提莫队长
发布2019-03-01 09:46:06
7790
发布2019-03-01 09:46:06
举报
文章被收录于专栏:刘晓杰

用MediaPlayer播放音频

1.创建并装载音频

代码语言:javascript
复制
MediaPlayer player = MediaPlayer.create(this,R.raw.<id>);
MediaPlayer player = MediaPlayer.create(this,Uri.parse(“http://”));
如果要访问网络中的资源,要有网络访问权限
<uses-permission android:name="android.permission.INTERNET"/>
 
或者用无参构造函数
MediaPlayer player = new MediaPlayer();
player.setDataSource(“”);                 //磁盘路径
player.prepare();

 2.MediaPlayer操作

代码语言:javascript
复制
player.start();
player.stop();
player.pause();

用SoundPool播放音频

1.创建对象

SoundPool(int maxStream, int streamType,int srcQuality)

maxStream指可容纳多少个音频,

streamType指声音类型,可取为STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(音乐)、STREAM_ALARM(闹铃声);

srcQuality指音质,通常为1

代码语言:javascript
复制
SoundPool soundpool = new SoundPool(10,AudioManager.STREAM_SYSTEM, 0);

2.加载音频

public int load(Context context, int resid,int priority);

public int load(String path, int priority);

代码语言:javascript
复制
int soundId = soundpool.load(this, R.raw.ding, 1);

3.播放音频

play(int soundID, float leftVolume, floatrightVolume, int priority, int loop, float rate);

leftVolume,rightVolume通常取1;priority指优先级,通常为1;loop指定循环次数,0为不循环,-1循环;rate指播放速率,正常为1

代码语言:javascript
复制
soundpool.play(soundID, 1, 1, 0, 0, 1);

通常为了管理,使用HashMap

代码语言:javascript
复制
HashMap<Integer, Integer> soundmap =new HashMap<Integer, Integer>();
SoundPool soundpool = new SoundPool(5,AudioManager.STREAM_SYSTEM, 0);
soundmap.put(1, soundpool.load(this,R.raw.login1, 1));
soundmap.put(2, soundpool.load(this,R.raw.login2, 1));
soundmap.put(3, soundpool.load(this,R.raw.login3, 1));
soundmap.put(4, soundpool.load(this,R.raw.login4, 1));
soundmap.put(5, soundpool.load(this,R.raw.login5, 1));

使用VideoView播放音频

现在layout文件中创建该组件,然后

代码语言:javascript
复制
       VideoView video = (VideoView)findViewById(R.id.videoView1);
       video.setVideoPath(String path);
       video.setVideoURI(Uri uri);
       video.start();
       video.pause();
       video.stopPlayback();

使用MediaPlayer和SurfaceView播放视频

1定义SurfaceView

代码语言:javascript
复制
   <!--keepScreenOn是否打开屏幕-->
   <SurfaceView
       android:id="@+id/surfaceView1"
       android:keepScreenOn="true"
       android:layout_gravity="center"
       android:layout_width="300sp"
       android:layout_height="400sp" />

2创建MediaPlayer

3将视频输出到SurfaceView

代码语言:javascript
复制
mediaplayer.setDisplay(surfaceview.getHolder());

4利用MediaPlayer控制视频的播放

控制相机拍照

代码语言:javascript
复制
requestWindowFeature(Window.FEATURE_NO_TITLE);

//设置全屏显示,放在setContentView之前

代码语言:javascript
复制
       final PictureCallback jpeg = new PictureCallback(){
                            @Override
                            publicvoid onPictureTaken(byte[] arg0, Camera arg1) {
                                     //TODO Auto-generated method stub
                                     //用来接收数据并且写入文件
                            }
       };
       //拍摄的图片一般放在SD卡内
       if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
                Toast.makeText(this,"请安装SD卡!", Toast.LENGTH_SHORT).show();
       }
            
       Camera camera = Camera.open();
       
       Camera.Parameters params = camera.getParameters();
       params.setPictureSize(100, 100);
       
       camera.setParameters(params);
       camera.startPreview();//开始预览
       camera.takePicture(null, null, jpeg);
       camera.stopPreview();
       camera.release();

Camera.takePicture(ShutterCallback shutter,PictureCallback raw, PictureCallback jpeg)

该函数的详细解释在这里 http://www.cnblogs.com/mengdd/archive/2013/04/06/3002975.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年12月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用MediaPlayer播放音频
  • 用SoundPool播放音频
  • 使用VideoView播放音频
  • 使用MediaPlayer和SurfaceView播放视频
  • 控制相机拍照
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档