关闭

初识Android之音频播放

393人阅读 评论(0) 收藏 举报
随着手机的全面普及,手机的一些功能也随之普遍化,手机上最基本的多媒体需求就是播放音频文件,那么Android开发中如何实现这一功能呢,其实Android的Media Player很简单,易于使用。下面我将为大家提供一个简单的实例,实现音频的播放功能,这里处理的很简单,仅是简单地实现了其播放功能而已,随之深入学习,我们可以对其功能进行细致的完善。

  这里我们将分三步操作来实现,1、在工程的res目录下新建raw文件夹,将MP3文件放在项目的res/raw目录中。2、创建MediaPlayer的一个新实例并调用MediaPlayer.create()来引用MP3。3、调用MediaPlayer方法prepare()和start()。

具体代码如下:

创建一个MediaPlayerActivity,包结构为cn.com。

package cn.com;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MediaPlayerActivity extends Activity {
   
 private Button myButton;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myButton = (Button) findViewById(R.id.playsong);
        myButton.setOnClickListener(new Button.OnClickListener(){
        @Override
        public void onClick(View v) {
           // TODO Auto-generated method stub
           MediaPlayer mp = MediaPlayer.create(MediaPlayerActivity.this, R.raw.song1);//音频文件
           mp.start();
           mp.setOnCompletionListener(new OnCompletionListener(){
                   public void onCompletion(MediaPlayer arg0){
                   }
           });
         }
       });
    }
}

main.xml文件创建一个简单的播放Button-------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button
    android:id="@+id/playsong"
    android:layout_width="60dip"
 android:layout_height="wrap_content"
 android:text="play" />
</LinearLayout>
   以上是主要代码,其他代码没变,有两个地方说明一下:R.raw.song1为raw下的歌曲的路径,在R.java中有对应关系的,也可以使用URI访问网络上的文件或通过互联网访问文件。setOnCompletionListener方法是用于播放完时执行某项任务,我们可以通过更改按钮的状态或通知用户歌曲播放完毕,或者询问用户是否希望播放下一首歌曲。这里我没做处理。

 

  说明:我也是初学Android的Java爱好者,对Android的高深技术目前还并不是很清楚,只是为了记录自己的学习历程与学习心得,常常发表一些博文,然而对一些技术的说明可能并不是很到位,如果其中有什么纰漏或者不妥之处,愿闻大家指点交流,一起学习共同进步。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15448次
    • 积分:334
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:2篇
    • 译文:0篇
    • 评论:3条
    文章存档
    最新评论