zoukankan      html  css  js  c++  java
  • Android 中MediaPlayer播放音频

    1、播放/res/raw/目录下的音频资源

    public class MainActivity extends Activity {
    
        MediaPlayer mediaPlayer;
        int position = 0;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
                
        }
    
        public void start(View v) {
            try {
                mediaPlayer = MediaPlayer.create(this, R.raw.mus);
                if (mediaPlayer != null ) {
                    mediaPlayer.stop(); 
                    position = 0;
                }
                mediaPlayer.prepare();
                if (position > 0) mediaPlayer.seekTo(position);
                mediaPlayer.start();        
            }catch (Exception e) {
                e.printStackTrace();
            }
            
        }
        
        public void stop(View v) {
            mediaPlayer.stop();
        }
    
        public void pause(View v) {
            position = mediaPlayer.getCurrentPosition();
            mediaPlayer.pause();
        }
        
        @Override
        protected void onDestroy() {
            mediaPlayer.release();
            super.onDestroy();
        }
    
    }

    2、播放 assets目录下的音频资源

    package com.test.mediaplayer;
    
    import java.io.IOException;
    
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.res.AssetFileDescriptor;
    import android.content.res.AssetManager;
    import android.view.Menu;
    import android.view.View;
    
    public class MainActivity extends Activity {
    
        MediaPlayer mediaPlayer;
        int position = 0;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);        
        }
    
        public void start(View v) {        
            try {
                mediaPlayer = new MediaPlayer();
                AssetManager am = getAssets();
                AssetFileDescriptor afd = am.openFd("mus.mp3");
                mediaPlayer.setDataSource(afd.getFileDescriptor());
                mediaPlayer.prepare();
                if (position > 0) mediaPlayer.seekTo(position);
                mediaPlayer.start();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        public void stop(View v) {
            mediaPlayer.stop();
        }
    
        public void pause(View v) {
            position = mediaPlayer.getCurrentPosition();
            mediaPlayer.pause();
        }
        
        @Override
        protected void onDestroy() {
            mediaPlayer.release();
            super.onDestroy();
        }
    
    }

    3、播放sdCard上的音频资源

    package com.test.mediaplayer;
    
    import java.io.IOException;
    
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.res.AssetFileDescriptor;
    import android.content.res.AssetManager;
    import android.view.Menu;
    import android.view.View;
    
    public class MainActivity extends Activity {
    
        MediaPlayer mediaPlayer;
        int position = 0;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);        
        }
    
        public void start(View v) {        
            try {
                mediaPlayer = new MediaPlayer();
                mediaPlayer.setDataSource("/mnt/sdcard/mus.mp3");
                mediaPlayer.prepare();
                if (position > 0) mediaPlayer.seekTo(position);
                mediaPlayer.start();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        public void stop(View v) {
            mediaPlayer.stop();
        }
    
        public void pause(View v) {
            position = mediaPlayer.getCurrentPosition();
            mediaPlayer.pause();
        }
        
        @Override
        protected void onDestroy() {
            mediaPlayer.release();
            super.onDestroy();
        }
    
    }

    4、播放网络音频资源使用 MediaPlayer的setDataSource(Context context, Uri uri)方法,Uri为音频文件的网络路径。

    使用SoundPool来播放密集、短促的音效。MediaPlayer的缺点是:资源占用量高、延迟时间长,不支持多个音频同时播放,SoundPool虽然可以一次性加载多个声音,但是由于内存限制,因此应该避免使用SoundPool来播放歌曲或者做游戏背景。

  • 相关阅读:
    Html5与CSS3(选择器)
    halo博客安装教程,一款优秀的java开源博客系统
    java的read方法
    css故障文字动画
    从软件公司的异同点讲起,聊聊未来的程序员该如何选公司和谋规划
    创建一个springboot项目
    每日算法训练
    Error running 'tomcat': Unknown error
    java: 程序包javax.servlet.http不存在
    idea配置阿里maven镜像
  • 原文地址:https://www.cnblogs.com/heml/p/3593762.html
Copyright © 2011-2022 走看看