5.1.2 通过意图使用内置的音频播放器

    如同使用摄像头一样,在应用程序中提供播放音频文件功能的最简单的方式是利用内置的“Music(音乐)”应用程序的功能。这个应用程序能够播放Android支持的所有格式,有一个用户熟悉的界面,并且可以通过意图来触发播放特定的文件。

    将通用android.content.Intent.ACTION_VIEW意图的数据设置为一个音频文件的URI,并指定其MIME类型,这样Android就可以挑选适当的应用程序进行播放。这应该是Music应用程序,但是如果用户安装了其他的音频播放软件,那么可能存在其他选项。

1          Intent intent=new Intent(android.content.Intent.ACTION_VIEW);
2          intent.setDataAndType(audioFileUri, "audio/mp3");
3          startActivity(intent);

   下面是通过一个意图触发内置音频播放器应用程序的完整示例:

 1 package com.nthm.androidtest;
 2 
 3 import java.io.File;
 4 import android.app.Activity;
 5 import android.content.Intent;
 6 import android.net.Uri;
 7 import android.os.Bundle;
 8 import android.os.Environment;
 9 import android.view.View;
10 import android.view.View.OnClickListener;
11 import android.widget.Button;

     在触发播放音频之前,活动将监听是否按下一个按钮。由于活动实现OnClickListener,因此它可以响应该事件。

1 public class AudioPlayer extends Activity implements OnClickListener {
2     private Button playButton;
3     
4     @Override
5     protected void onCreate(Bundle savedInstanceState) {
6         super.onCreate(savedInstanceState);
7         setContentView(R.layout.audioplayer);

    在将内容视图设置为我们的XML之后,可以在代码中获得按钮的引用,并设置活动(this)为OnClickListener。

1         playButton=(Button) findViewById(R.id.Button01);
2         playButton.setOnClickListener(this);
3     }

    当单击按钮时,调用onClick方法。在该方法中使用的android.content.Intent.ACTION_VIEW构造意图,然后创建一个File对象,引用在SD卡上存在的音频文件。在当前情况下,音频文件被手动设置在SD卡的Music目录中,该目录是放置音乐相关音频文件的标准位置。

1     @Override
2     public void onClick(View v) {
3         Intent intent=new Intent(android.content.Intent.ACTION_VIEW);
4         File sdcard=Environment.getExternalStorageDirectory();
5         File audioFile=new File(sdcard.getPath()+"music.mp3");

   接下来,将意图的数据设置为源自音频文件的Uri,并将类型设置为其MIME类型——audio/mp3。最后,通过调用startActivity并传入意图来触发内置的应用程序启动。

1         intent.setDataAndType(Uri.fromFile(audioFile), "audio/mp3");
2         startActivity(intent);
3     }
4 }

    以下是一个简单的布局XML文件,指定用于上述活动的按钮文本为“Play Audio”。

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:orientation="vertical"
 5     >
 6     <Button 
 7         android:layout_width="fill_parent"
 8         android:layout_height="wrap_content"
 9         android:text="Play Audio"
10         android:id="@+id/Button01" />
11 </LinearLayout>

 

posted on 2014-08-27 10:49  宁静致远,一览众山小  阅读(579)  评论(0编辑  收藏  举报

导航