Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> [android,16]android 音樂播放器、聲音池

[android,16]android 音樂播放器、聲音池

編輯:關於Android編程

一、開發音樂播放器:

1、音樂播放器的界面文件:一個可以輸入播放音樂文件路徑的文本框,和四個按鈕:

 

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

 

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

android:textSize="20sp" />

 

android:id="@+id/et_path"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

 

//打開界面時文本框獲取焦點

 

 

android:layout_width="fill_parent"

>

android:gravity="center_horizontal"//指定組件水平居中顯示

android:orientation="horizontal" >

 

android:id="@+id/play"

android:layout_width="0dip" //設置按鈕為寬度為0

android:layout_height="wrap_content"

android:layout_weight="1"//設置按鈕比重為1

android:text="播放" />

 

android:id="@+id/pause"

android:layout_width="0dip"

android:layout_height="wrap_content"

>

android:text="暫停" />

 

android:id="@+id/replay"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

>

 

android:id="@+id/stop"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:text="停止" />

 

 

 

2、播放器的播放、重播、暫停、停止操作。

①、播放:

//創建MediaPlayer對象

MediaPlayer>

//設置播放類型

mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

//設置播放文件的路徑

mPlayer.setDataSource(path);

// 注意:非常重要

mPlayer.prepare(); // 調用底層c代碼 完成>

}

});

//開始播放:

mPlayer.start();

②、暫停:

//mPlayer.isPlaying()判斷是否在播放

if (mPlayer !=>

>

}

/創建MediaPlayer對象

MediaPlayer>

//設置播放類型

mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

//設置播放文件的路徑

mPlayer.setDataSource(path);

// 注意:非常重要

mPlayer.prepare(); // 調用底層c代碼 完成>

}

});

//開始播放:

mPlayer.start();

④、停止:

if (mPlayer !=>

}

 

二、隨音樂播放顯示歌詞:

1、先解析 歌詞文件 .lrc文件。

 

①、歌詞文件的樣式為:

[00:01.93]小村之戀

[00:24.36]彎彎的小河青青的山岡

[00:31.53]依偎著小村莊

[00:35.82]藍藍的天空陣陣的花香

②、解析.lrc文件,一行行讀取歌詞,解析出時間和歌詞, 把時間作為key,對應的歌詞作為value,放到map集合中。

Map>

String>

>

>

String>

SimpleDateFormat>

Date>

System.out.println(>

Map.put(date,value );

 

2、在播放時顯示歌詞的具體操作:

public>

 

>

//用於修改歌詞的handler

>

 

@Override

>

//將時間作為key 在map中取出歌詞顯示:

}

 

};

@Override

>

>

>

>

>

 

>

>

>

>

>

>

>

}

 

>

>

>

}

 

>

>

}

 

play(path);

 

break;

 

}

 

}

 

private void play(String path) {

try {

>

>

}

});

 

mPlayer.start();

>

// >

//把音頻文件加載到聲音池裡面;返回id

//方法的參數1:上下文

參數2:指定聲音資源文件

參數3:

int>

 

}

//點擊開火的按鈕:

public void fire(View view){

//播放聲音池中聲音:play()方法

方法參數1:聲音的id

參數2:左聲道大小,

參數3:右聲道聲音大小,

參數4:指定優先級,0為最低。

參數5:指定聲音的播放模式,取值:0表示只播放一次,-1:永久循環播放。

參數6:指定聲音播放的速率。

soundpool.play(soundid,1.0f, 1.0f, 0, 0, 1.0f);

}

 

③、play()方法的調用是異步的。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved