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()方法释放资源。

  • 相关阅读:
    了解委托(Delegate)
    C#中事件的一些总结
    Devexpress Xtrareport 并排报表
    Xtrareport 交叉报表
    Xtrareport 多栏报表
    Xtrareport 报表的一些属性及控件
    UI前端开发都是做什么的以及html、css、php、js等究竟是神马关系
    url,href,src之间的区别
    join()的用法
    爬取百度百科
  • 原文地址:https://www.cnblogs.com/dongao/p/12262597.html
Copyright © 2011-2022 走看看