




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)音樂(lè)播放器
/upload/information/20200623/125/124636.jpg<LinearLayout
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.musicplay.MainActivity"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/filename"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.00"
android:background="#B0C4DE"
android:text="Payphone.mp3"
android:id="@+id/filename"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/playbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="mediaplay"
android:text="@string/playbutton"
/>
<Button
android:id="@+id/pausebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="mediaplay"
android:text="@string/pausebutton"
/>
<Button
android:id="@+id/resetbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="mediaplay"
android:text="@string/resetbutton"
/>
<Button
android:id="@+id/stopbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="mediaplay"
android:text="@string/stopbutton"
/>
</LinearLayout>
</LinearLayout>package
com.example.musicplay;
import
java.io.File;
import
android.app.Activity;
import
android.content.Context;
import
android.media.MediaPlayer;
import
android.media.MediaPlayer.OnPreparedListener;
import
android.os.Bundle;
import
android.os.Environment;
import
android.telephony.PhoneStateListener;
import
android.telephony.TelephonyManager;
import
android.view.View;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.Toast;
public
class
MainActivity
extends
Activity
{
private
EditText
nameText;
private
String
path;
private
int
position;
private
MediaPlayer
mediaplayer;
private
boolean
pause;
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameText=(EditText)
this.findViewById(R.id.filename);
mediaplayer=new
MediaPlayer();
}
//以下方法會(huì)造成只要應(yīng)用在后臺(tái)音樂(lè)都會(huì)停止播放
@Override
//當(dāng)應(yīng)用不在前臺(tái)時(shí),停止播放
protected
void
onPause()
{
if(mediaplayer.isPlaying()){
position=mediaplayer.getCurrentPosition();
mediaplayer.stop();
}
super.onPause();
}
@Override
protected
void
onResume()
{
if(position>0&&path!=null){
play();
mediaplayer.seekTo(position);
position=0;
}
super.onResume();
}
@Override
protected
void
onDestroy()
{
mediaplayer.release();
mediaplayer=null;
super.onDestroy();
}
public
void
mediaplay(View
v){
switch
(v.getId())
{
case
R.id.playbutton:
String
filename=nameText.getText().toString();
//Environment.getExternalStorageDirectory()檢查外部存儲(chǔ)設(shè)備的可用性
File
audio=new
File(Environment.getExternalStorageDirectory(),filename);
if(audio.exists()){
//獲取SDCard目錄,2.2的時(shí)候?yàn)?/mnt/sdcart
2.1的時(shí)候?yàn)椋?sdcard,所以使用靜態(tài)方法得到路徑會(huì)好一點(diǎn)。
path=audio.getAbsolutePath();
play();
}
else{
path=null;
Toast.makeText(getApplicationContext(),
R.string.error,
1).show();
}
break;
case
R.id.pausebutton:
if(mediaplayer.isPlaying()){
mediaplayer.pause();
pause=true;
((Button)v).setText(R.string.continues);
}else{
if(pause){
mediaplayer.start();
pause=false;
((Button)v).setText(R.string.pausebutton);
}
}
break;
case
R.id.resetbutton:
if(mediaplayer.isPlaying()){
mediaplayer.seekTo(0);//從開始位置播放
}else{
if(path!=null){
play();
}
}
break;
case
R.id.stopbutton:
if(mediaplayer.isPlaying()){
mediaplayer.stop();
}
break;
default:
break;
}
}
private
void
play()
{
try
{
mediaplayer.reset();//把各項(xiàng)參數(shù)恢復(fù)到初始化狀態(tài)
mediaplayer.setDataSource(path);
mediaplayer.prepare();//進(jìn)行緩沖
//設(shè)置緩沖監(jiān)聽器
mediaplayer.setOnPr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)鼓風(fēng)機(jī)軸瓦市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)隨車急救工具市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)輸箱系統(tǒng)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)花齒墊片市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)組合臺(tái)燈市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)短節(jié)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)甲基丙烯酯市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)滲透性松銹油市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)水溶鈦?lái)?xiàng)圈市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)木材烘干箱市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- Cpk 計(jì)算標(biāo)準(zhǔn)模板
- 化工原理課程設(shè)計(jì)-用水冷卻煤油產(chǎn)品的列管式換熱器的工藝設(shè)計(jì)
- 初中美術(shù)(湘教版)八年級(jí)下冊(cè)《變廢為寶》單元作業(yè)設(shè)計(jì)
- 熱力學(xué)與統(tǒng)計(jì)物理-試題及答案 2
- 2023-2024學(xué)年四川省雅安市小學(xué)數(shù)學(xué)一年級(jí)下冊(cè)期末高分試卷
- 網(wǎng)絡(luò)游戲代理合同通用版范文(2篇)
- GB/T 6414-1999鑄件尺寸公差與機(jī)械加工余量
- GB/T 27773-2011病媒生物密度控制水平蜚蠊
- GB/T 12817-1991鐵道客車通用技術(shù)條件
- 質(zhì)量風(fēng)險(xiǎn)識(shí)別項(xiàng)清單及防控措施
- 【課件超聲】常見(jiàn)的超聲效應(yīng)與圖象偽差
評(píng)論
0/150
提交評(píng)論