zoukankan      html  css  js  c++  java
  • Android:多媒体应用开发

    一、音频

    使用MediaPlayer类

    1、定义

    MediaPlayer是Android用来音频/视频文件或流播放的类

    2、使用MediaPlayer类播放音频步骤

    首先创建MediaPlayer类对象,用来装载音频文件。有两种方法,一是create(Context context,Uri uri)或create(Context context,intresid);二是调用无参的构造方法,然后调用setDataSource(),prepare()即可。

    其次使用start(),pause(),stop()来开始、暂停和停止音频播放。

    使用SoundPool类

    与MediaPlayer的比较

      优点 缺点
    SoundPool  只能播放短促的音频

     延迟长,且占用资源多

    不支持同时播放多个音频

    MediaPlayer  延迟短,且占用资源少

    支持同时播放多个音频

     多种音频播放

    1、定义:

    SoundPool(音效池):管理多个短促的音效,播放按键音或游戏提示音。

    2、使用SoundPool类播放音频步骤

    创建SoundPool对象调用load()方法加载音频,调用play()方法播放音频。

     二、视频

    使用VideoView播放

    使用VideoView类播放视频步骤

    在xml中添加VideoView组件,使用setVideoPath(),setVideoURI()方法来加载视频,调用start(),pause(),stop()来开始,暂停,停止播放。

    使用MediaController类

    可以在视频底部添加播放条,提供进度快进等功能。

     使用MediaPlayer和SurfaceView播放

    使用MediaPlayer和SurfaceView类播放视频步骤:

    定义SurfaceView组件,创建MediaPlayer对象加载视频,通过setDisplay()方法将视频输出到SurfaceView,最后调用start(),pause(),stop()来开始,暂停,停止播放。

            SurfaceView surfaceView = findViewById(R.id.surfaceView);//获取在布局文件中定义的SurfaceView
    //        获取把当前surfaceView和视频进行关联的SurfaceHolder对象
            SurfaceHolder surfaceHolder = surfaceView.getHolder();
            MediaPlayer mediaPlayer1 = new MediaPlayer();//无参构造创建对象
            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置多媒体类型为音频流
            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {//监听视频播放完毕
                    Toast.makeText(MainActivity.this,"视频播放完毕",Toast.LENGTH_SHORT).show();
                }
            });

    三、控制摄像头拍照

    控制摄像头拍照的步骤

    1、调用camera类的open()方法打开摄像头

    2、通过Camera.Parameters类设置拍照参数

    3、然后startPriview()预览拍照画面,takePicture()进行拍照,stopPriview()结束预览,release()释放摄像头资源。

    四、控制摄像头录制视频

    步骤:

    1、创建MediaRecord对象,通过setAudioSource()设置声音来源,通过setOutputFormat()设置输出文件的格式,设置音频视频参数,通过setOutputFile()设置文件保存位置,通过setPreviewDisplay()设置显示预览的SurfaceView。

    2、然后调用prepare()和start()方法开始录制视频,stop()停止录制,release()方法释放资源。

  • 相关阅读:
    【UML】基本介绍与类图(依赖、泛化、实现、关联、聚合、组合关系)
    【Java】集合综合案例
    【Java】集合框架(List Set Map)
    【Java】面向对象
    【Java】单例模式(Singleton)
    正则表达式(括号)、[中括号]、{大括号}的区别
    js正则表单验证汇总,邮箱验证,日期验证,电话号码验证,url验证,信用卡验证,qq验证
    网页倒计时,动态显示"××年还剩××天××时××分××秒"
    判断鼠标是否在指定区域代码
    鼠标左中右键返回值的兼容性问题
  • 原文地址:https://www.cnblogs.com/dongao/p/12262597.html
Copyright © 2011-2022 走看看