
Audio檔案可以來自外部檔案(例如:SD卡)或是網路,步驟如下:
使用MediaPlayer類別的建構式來建立MediaPlayer的物件實體
呼叫setDataSource()並搭配路徑來指定欲播放的檔案
先呼叫prepare(),然後呼叫start()開始播放
如果呼叫stop()停止播放後還想繼續播放,必須呼叫reset()與prepare(),方可再呼叫start()開始播放
1.設計Ch9_2_MediaPlayer_Audio.java
- package com.example.ch9_2_mediaplayer_audio;
- import java.io.IOException;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- import android.widget.Toast;
- public class Ch9_2_MediaPlayer_Audio extends Activity {
- Button btn1,btn2,btn3;
- TextView tv1;
- MediaPlayer mp;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn1=(Button)findViewById(R.id.button1);
- btn2=(Button)findViewById(R.id.button2);
- btn3=(Button)findViewById(R.id.button3);
- tv1=(TextView)findViewById(R.id.tv1);
- btn1.setOnClickListener(new OnClickListener(){
- public void onClick(View v) {
- playAudio("/mnt/sdcard/lee.mp3");
- Toast.makeText(getApplicationContext(), "播放SDCARD_Audio", Toast.LENGTH_LONG).show();
- }});
- btn2.setOnClickListener(new OnClickListener(){
- public void onClick(View v) {
- playAudio("http://192.168.255.184/lee.mp3");
- Toast.makeText(getApplicationContext(), "播放Netork_Audio", Toast.LENGTH_LONG).show();
- }});
- btn3.setOnClickListener(new OnClickListener(){
- public void onClick(View v) {
- if(mp !=null)
- mp.stop();
- Toast.makeText(getApplicationContext(), "停止播放", Toast.LENGTH_LONG).show();
- }});
- }
- public void playAudio(String path){
- tv1.setText("檔案來源----"+path);
- if(mp ==null)
- mp=new MediaPlayer();
- mp.reset();
- try {
- mp.setDataSource(path);
- mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
- mp.prepare();
- mp.start();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- protected void onPause() {
- super.onPause();
- if(mp!=null){
- mp.release();
- mp=null;
- }
- }
- }
復制代碼
|