android开发---音乐播放器的简单播放

刚接触音乐这一块,遇到了一些问题,很简单的问题,希望能帮助和我有一样问题的人。
播放音乐有几种,容易出现问题的有几中!以及播放原始资源文件,重点说有问题的地方。对于播放应用的资源文件。用到的是MediaPlayer.create的方法。
错误代码实例:
private MediaPlayer mediaPlayer;

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        play = (ImageButton) findViewById(R.id.start);
        stop = (ImageButton) findViewById(R.id.stop);
        pause = (ImageButton) findViewById(R.id.pause);
        mediaPlayer = new MediaPlayer();
       <span style="color:#ff6666;"> mediaPlayer.create(this,R.raw.m);</span>
//        try {
//            mediaPlayer.prepare();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
        mediaPlayer.start();;
    }


上面的代码好像的没有错误的,但是红色字体的位置,对象引用错误,很关键,对于刚学的同学很容易犯这种
error;
正确的方法:
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        play = (ImageButton) findViewById(R.id.start);
        stop = (ImageButton) findViewById(R.id.stop);
        pause = (ImageButton) findViewById(R.id.pause);
        mediaPlayer = new MediaPlayer();
        mediaPlayer = MediaPlayer.create(this,R.raw.m);
//        try {
//            mediaPlayer.prepare();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
        mediaPlayer.start();;
    }

这就是简单的调用资源中的文件,对于原始资源文件,要说下什么事原始的资源文件。Android中没有提供专门支持的文件 叫原始资源文件。android原始资源一般放在/res/raw目录和/assets/目录下;在assets目录下的文件通过AssetMananger来管理。知道之后可能会好理解的多!
代码实现:
am = getAssets();
        try {
            afd = am.openFd("m.mp3");
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            mediaPlayer.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            mediaPlayer.prepare();
        } catch (IOException e) {
            e.printStackTrace();
        }
        mediaPlayer.start();;

上面的就是实现原始资源的播放方法,那么m.mp3在哪呢,在/assets/下不是/res/assets。上面也可能出现几个
问题,那就是要单独的创建出对象,举个例子,要在上面写出,AssetManager am;这样。
然后就是播放外部储存器以及网络的音乐,这些和第一个create的差不多,外部的也就是我们多说的内存卡了,
对于网络的,知道地址就好了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值