zoukankan      html  css  js  c++  java
  • 对象方法Android之多媒体使用——MediaPlayer播放音频

    每日一贴,今天的内容关键字为对象方法

        MediaPlayer类
    对象和方法
    静态构造方法
    对象和方法
    常用方法
    对象和方法
    绑定事件监听器
    对象和方法
    播放音频
    1、播放应用的资源文件(res/raw/)

    通过我们下面介绍的几个静态构造函数创立MediaPlayer对象

        MediaPlayer  mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this,
                      R.raw.a1);
    


    2、播放应用的原始资源文件(assets)1)        通过Context.getAssets()方法取得AssetManager对象
    2)        通过AssetManager对象的openFd(String name)方法打开指定的原生资源文件夹,返回一个AssetFileDescriptor对象
    3)        通过AssetFileDescriptor的getFileDescriptor()得到一个FileDescriptor对象
    4)        通过public void setDataSource (FileDescriptor fd, long offset, long length)来创立MediaPlayer对象
    5)        调用MediaPlayer.prepare()方法准备音频
    6)        调用MediaPlayer的start()、pause()、stop()等方法控制

        AssetFileDescriptor fileDescriptor = assetManager
                         .openFd("a2.mp3");
                    mediaPlayer = new MediaPlayer();
                   mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),
                         fileDescriptor.getStartOffset(),
                         fileDescriptor.getLength());
                        mediaPlayer.prepare();<p>                         mediaPlayer.start();</p>
    


    3、播放外部存储上的音频资源文件(sdcard)

        1)        创立MediaPlayer对象,通过MediaPlayer对象的setDataSource(String path)方法装载预约的音频文件
    2)        调用MediaPlayer对象的prepare()方法准备音频
    3)        调用MediaPlayer的start()、pause()、stop()等方法控制

    1. mediaPlayer = new MediaPlayer();
                 mediaPlayer.setDataSource("/mnt/sdcard/a3.mp3");
                 mediaPlayer.prepare();
                 mediaPlayer.start();
      



    4、播放网络上的音频文件
    1)        根据网络上的地址创立Uri对象
    2)        通过public void setDataSource (Context context, Uri uri)设置音频来源装载音频文件
    3)        调用MediaPlayer对象的prepare()方法准备音频
    4)        调用MediaPlayer的start()、pause()、stop()等方法控制

        mediaPlayer = new MediaPlayer();
                   // 通过Uri剖析一个网络地址
                   Uri uri = Uri
                         .parse("http://zhangmenshiting2.baidu.com/data2/music/9138619/9138619.mp3?xcode=dd0d0d0df7218eb9a79c7fd72cefb648&mid=0.18926789458694");
                   mediaPlayer.setDataSource(MediaPlayerDemoActivity.this, uri);
                   mediaPlayer.prepare();
        mediaPlayer.start();
    

    当然也可以通过我们的另一种静态构造方法直接创立一个MediaPlayer对象

    1.   
      Uri uri = Uri
                       .parse("http://zhangmenshiting2.baidu.com/data2/music/9138619/9138619.mp3?xcode=dd0d0d0df7218eb9a79c7fd72cefb648&mid=0.18926789458694");
         mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this,
                       uri);
                 mediaPlayer.start();
      



    实现效果:
    对象和方法
    贴上源代码:

        每日一道理
    听,是谁的琴声,如此凄凉,低调的音,缓慢的节奏,仿佛正诉说着什么。音低调得略微有些抖动,听起来似乎心也有些抖动,我感觉到一种压抑的沉闷气息,是否已凝结在这空气中……
        package com.jiahui.media;
        import java.io.IOException;
        public class MediaPlayerDemoActivity extends Activity implements
                        OnClickListener {
                private Button btnAppStart, btnAssetsStart, btnSdcardStart,
                                btnNetworkStart;
                public void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.main);
                        btnAppStart = (Button) this.findViewById(R.id.btnAppStart);
                        btnAssetsStart = (Button) this.findViewById(R.id.btnAssetsStart);
                        btnSdcardStart = (Button) this.findViewById(R.id.btnSdcardStart);
                        btnNetworkStart = (Button) this.findViewById(R.id.btnNetworkStart);
                        btnAppStart.setOnClickListener(this);
                        btnAssetsStart.setOnClickListener(this);
                        btnSdcardStart.setOnClickListener(this);
                        btnNetworkStart.setOnClickListener(this);
                }
                @Override
                public void onClick(View v) {
                        MediaPlayer mediaPlayer = null;
                        switch (v.getId()) {
                        case R.id.btnAppStart:
                                System.out.println("---播放应用的资源文件----");
                                // 应用raw下的资源文件创立MediaPlayer对象
                                mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this,
                                                R.raw.a1);
                                mediaPlayer.start();
                                break;
                        case R.id.btnAssetsStart:
                                System.out.println("---播放assest的资源文件----");
                                AssetManager assetManager = this.getAssets();
                                try {
                                        AssetFileDescriptor fileDescriptor = assetManager
                                                        .openFd("a2.mp3");
                                        mediaPlayer = new MediaPlayer();
                                        mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),
                                                        fileDescriptor.getStartOffset(),
                                                        fileDescriptor.getLength());
                                        mediaPlayer.prepare();
                                        mediaPlayer.start();
                                } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                                break;
                        case R.id.btnSdcardStart:
                                System.out.println("---播放SDcard上的文件---");
                                try {
                                        mediaPlayer = new MediaPlayer();
                                        mediaPlayer.setDataSource("/mnt/sdcard/a3.mp3");
                                        mediaPlayer.prepare();
                                        mediaPlayer.start();
                                } catch (Exception e) {
                                }
                                break;
                        case R.id.btnNetworkStart:
                                System.out.println("播放网络上的音频");
                                // http://zhangmenshiting2.baidu.com/data2/music/9138619/9138619.mp3?
                                // xcode=dd0d0d0df7218eb9a79c7fd72cefb648&mid=0.18926789458694
                                try {
                                        // mediaPlayer = new MediaPlayer();
                                        // 通过Uri剖析一个网络地址
                                        Uri uri = Uri
                                                        .parse("http://zhangmenshiting2.baidu.com/data2/music/9138619/9138619.mp3?xcode=dd0d0d0df7218eb9a79c7fd72cefb648&mid=0.18926789458694");
                                        mediaPlayer.setDataSource(MediaPlayerDemoActivity.this, uri);
                                        // mediaPlayer.prepare();
                                        // 也可以直接通过这种方法装载网络上的音频文件
                                        mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this,
                                                        uri);
                                        mediaPlayer.start();
                                } catch (Exception e) {
                                        // TODO: handle exception
                                }
                                break;
                        default:
                                break;
                        }
                }
        }


    源代码下载:http://download.csdn.net/detail/jiahui524/3847987
    http://blog.csdn.net/jiahui524

    文章结束给大家分享下程序员的一些笑话语录: 程序员打油诗   
      写字楼里写字间,写字间里程序员;
      程序人员写程序,又拿程序换酒钱。
      酒醒只在网上坐,酒醉还来网下眠;
      酒醉酒醒日复日,网上网下年复年。
      但愿老死电脑间,不愿鞠躬老板前;
      奔驰宝马贵者趣,公交自行程序员。
      别人笑我忒疯癫,我笑自己命太贱;
      不见满街漂亮妹,哪个归得程序员。

  • 相关阅读:
    1 从瀑布到敏捷——漫画解读软件开发模式变迁史(转载)
    xshell 常用命令1
    Python---3基础输入方法
    React 初试
    Js 入门文档
    SpringCloud 入门知识篇
    SpringBoot mysql, redis 配置
    工作常用命令
    Java 内置锁 重入问题
    牛顿迭代法, 开根号
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3078425.html
Copyright © 2011-2022 走看看