如今,任何名副其實的智能手機都具有音頻播放功能。當然,基於android的裝置也不例外,它允許你建立音樂播放器,有聲書,播客或任何圍繞音頻播放的其他應用類程式。本次將討論Android在格式和轉碼器支援方面的功能同時還將構建幾個不同的播放程式。
音頻播放
Android支援多種用於播放的音頻檔案格式和轉碼器(同時也支援錄音)
具體的格式介紹可以自行查閱資料
通過意圖使用系統內建的播放器
通過意圖來促發播放制定的檔案,使用android.content.Intent.ACTION_VIEW意圖的資料設定為一個音頻檔案的URI,並指定其MIME類型,這樣Android就可以挑選設當的應用程式播放。
Intent intent=new Intent(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(audioFileUri,"audio/mp3");
startActivity(intent);
下面是一個完整的樣本,
import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
- /**
- * 本樣本示範如何利用Android內建的Music來播放程式
- * 和Camera一樣,可以通過Intent來啟動它。
- * 我們需要指定一個ACTION_VIEW的Action
- * 同時一個Uri來指定我們要播放檔案的路徑
- * 最後指定一個MIME類型,指定所要播放的檔案類型
- * 每種檔案類型對應的都有一個MIME,他一般是類似於audio/mp3格式
- * 前部分是一個較大的類型,後面是更具體的類型
- *
- * 同樣的,對於Audio類型的多媒體,系統儲存在MediaStore.Audio中
- * 包括Media,Album,Genre等資訊體
- *
- * 本文將以列表的形式列出所有的Album資訊,供使用者選擇
- * 當使用者選擇某個Album時,系統將開啟這個ALbum下的所有Audio
- * @author Administrator
- *
- */
在觸發播放音頻之前,活動將監聽是否按下一個按鈕。由於活動實現OnClickListener,因此它可以響應該事件。
public class IntentAudioPlayer extends Activity implements OnClickListener {
Button playButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
playButton = (Button) this.findViewById(R.id.Button01);
playButton.setOnClickListener(this);
}
public void onClick(View v) {
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
File sdcard = Environment.getExternalStorageDirectory();
File audioFile = new File(sdcard.getPath()
+ "/Music/goodmorningandroid.mp3");
intent.setDataAndType(Uri.fromFile(audioFile), "audio/mp3");
startActivity(intent);
}
}
以下是布局檔案:
<?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:text="Play Audio" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
關於這一部分,還有一篇進階的文章大家可以看看:http://blog.csdn.net/chenjie19891104/article/details/6330383