加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【Android】使用MediaPlayer播放assets目录的音频文件

(2012-01-16 11:43:24)
标签:

android

mediaplay

assets

assetfile

descriptor

分类: Android
1、使用MediaPlayer播放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()等方法控制

具体代码如下:

public class MainActivity extends Activity {

    MediaPlayer mediaPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try {
            //播放 assets/a2.mp3 音乐文件
            AssetFileDescriptor fd getAssets().openFd("a2.mp3");
            mediaPlayer new MediaPlayer();
            mediaPlayer.setDataSource(fd.getFileDescriptor()fd.getStartOffset()fd.getLength());
            mediaPlayer.prepare();
            mediaPlayer.start();
        catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mediaPlayer.release();
    }
}


2、使用MediaPlayer播放res/raw目录下的媒体文件

直接上代码:

public class MainActivity extends Activity {

    MediaPlayer mediaPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //播放 assets/a2.mp3 音乐文件
        mediaPlayer MediaPlayer.create(this, R.raw.a2);
        //内部已经调用了prepare,这里一定不能再调用了
        //mediaPlayer.prepare();
        if (mediaPlayer != null{
            mediaPlayer.start();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mediaPlayer != null{
            mediaPlayer.release();
        }
    }
}



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有