當前位置:首頁 » 安卓系統 » android音樂播放器網路

android音樂播放器網路

發布時間: 2022-08-09 04:56:18

1. android開發音樂播放器MediaPlayer.prepare()

MediaPlayer類可用於控制音頻/視頻文件或流的播放,我曾在《Android開發之基於Service的音樂播放器》一文中介紹過它的使用。下面讓我們看一下MediaPlayer類的詳細介紹。
一、類結構:

java.lang.Object



android.media.MediaPlayer

二、構造方法和公有方法
構造方法:

Public Constructors

MediaPlayer()
默認構造方法。

公有方法:

Public Methods

static MediaPlayer

create(Context context, Uri uri, SurfaceHolder holder)
指定從資源ID對應的資源文件中來裝載音樂文件,同時指定了SurfaceHolder對象並返回MediaPlyaer對象。

static MediaPlayer

create(Context context, int resid)
指定從資源ID對應的資源文件中來裝載音樂文件,並返回新創建的MediaPlyaer對象。

static MediaPlayer

create(Context context, Uri uri)
從指定Uri裝在音頻文件,並返回新創建的MediaPlayer對象。

int

getCurrentPosition()
獲取當前播放的位置。

int

getDuration()
獲取音頻的時長。

int

getVideoHeight()
獲取視頻的高度。

int

getVideoWidth()
獲取視頻的寬度。

boolean

isLooping()
判斷MediaPlayer是否正在循環播放。

boolean

isPlaying()
判斷MediaPlayer是否正在播放。

void

pause()
暫停播放。

void

prepare()
准備播放(裝載音頻),調用此方法會使MediaPlayer進入Prepared狀態。

void

prepareAsync()
准備播放非同步音頻。

void

release()
釋放媒體資源。

void

reset()
重置MediaPlayer進入未初始化狀態。

void

seekTo(int msec)
尋找指定的時間位置。

void

setAudioStreamType(int streamtype)
設置音頻流的類型。

void

setDataSource(String path)
指定裝載path路徑所代表的文件。

void

setDataSource(Context context, Uri uri, Map<String, String headers)
指定裝載uri所代表的文件。

void

setDataSource(Context context, Uri uri)
指定裝載uri所代表的文件。

void

setDataSource(FileDescriptor fd, long offset, long length)
指定裝載fd所代表的文件中從offset開始長度為length的文件內容。

void

setDataSource(FileDescriptor fd)
指定裝載fd所代表的文件。

void

setDisplay(SurfaceHolder sh)
設置顯示方式。

void

setLooping(boolean looping)
設置是否循環播放。

void

setNextMediaPlayer(MediaPlayer next)
設置當前流媒體播放完畢,下一個播放的MediaPlayer。

void

setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener listener)
注冊一個回調函數,在網路視頻流緩沖變化時調用。

void

setOnCompletionListener(MediaPlayer.OnCompletionListener listener)
為Media Player的播放完成事件綁定事件監聽器。

void

setOnErrorListener(MediaPlayer.OnErrorListener listener)
為MediaPlayer的播放錯誤事件綁定事件監聽器。

void

setOnPreparedListener(MediaPlayer.OnPreparedListener listener)
當MediaPlayer調用prepare()方法時觸發該監聽器。

void

setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener listener)
當MediaPlayer調用seek()方法時觸發該監聽器。

void

setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListener listener)
注冊一個用於監聽視頻大小改變的監聽器。

void

setScreenOnWhilePlaying(boolean screenOn)
置是否使用SurfaceHolder來顯示。

void

setSurface(Surface surface)
設置Surface。

void

setVideoScalingMode(int mode)
設置視頻縮放的模式。

void

setVolume(float leftVolume, float rightVolume)
設置播放器的音量。

void

setWakeMode(Context context, int mode)
為MediaPlayer設置低級電源管理行為。.

void

start()
開始或恢復播放。

void

stop()
停止播放。

三、常用方法分析:
1.使用進度條:
進度條SeekBar可以用來顯示播放進度,用戶也可以利用SeekBar的滑塊來控制音樂的播放。
SeekBar需要使用的一些方法:
setProgress(int value):設置滑塊的位置方法為。
setMax(int value):設置進度條的最大長度。
setOnSeekBarChangeListener(OnSeekBarChangeListener l):設置SeekBar的進度改變事件。
MusicPlayer需要使用的一些方法:
getDuration():獲得音樂長度為。
getCurrentPosition():獲得現在播放的位置。
seekTo(int msec):調用seekTo()方法可以調整播放的位置。
seekTo(int)方法是非同步執行的,所以它可以馬上返回,但是實際的定位播放操作可能需要一段時間才能完成,尤其是播放流形式的音頻/視頻。當實際的定位播放操作完成之後,內部的播放引擎會調用客戶端程序員提供的OnSeekComplete.onSeekComplete()回調方法。可以通過setOnSeekCompleteListener(OnSeekCompleteListener)方法注冊。
seekTo(int)方法也可以在其它狀態下調用,比如Prepared,Paused和PlaybackCompleted狀態。此外,目前的播放位置,實際可以調用getCurrentPosition()方法得到,它可以幫助如音樂播放器的應用程序不斷更新播放進度。
創建並使用進度條的步驟:
第一步:創建一個進度條

//進度條
static SeekBarskbMusic;
skbMusic=(SeekBar)findViewById(R.id.skbMusic);

第二步:為進度條的改變事件注冊並添加監聽器

skbMusic.setOnSeekBarChangeListener(sChangeListener);
/**
* SeekBar進度改變事件
*/
=new OnSeekBarChangeListener() {
@Override
publicvoid onStopTrackingTouch(SeekBar seekBar) {
//TODO Auto-generated method stub
//當拖動停止後,控制mediaPlayer播放指定位置的音樂
MusicService.mediaPlayer.seekTo(seekBar.getProgress());
MusicService.isChanging=false;
}
@Override
publicvoid onStartTrackingTouch(SeekBar seekBar) {
//TODO Auto-generated method stub
MusicService.isChanging=true;
}
@Override
publicvoid onProgressChanged(SeekBar seekBar,int progress,
boolean fromUser) {
//TODO Auto-generated method stub
}
};

第三步:設置進度條的最大長度:

//getDuration()方法要在prepare()方法之後,否則會出現Attempt to call getDuration without a valid mediaplayer異常
MusicBox.skbMusic.setMax(mediaPlayer.getDuration());//設置SeekBar的長度

第四步:更新進度條

//----------定時器記錄播放進度---------//
mTimer =new Timer();
mTimerTask =new TimerTask() {
@Override
publicvoid run() {
isTimerRunning=true;
if(isChanging==true)//當用戶正在拖動進度進度條時不處理進度條的的進度
return;
MusicBox.skbMusic.setProgress(mediaPlayer.getCurrentPosition());
}
};
//每隔10毫秒檢測一下播放進度
mTimer.schele(mTimerTask, 0, 10);

2.裝載音頻文件:
為了讓MediaPlayer來裝載指定音頻文件,MediaPlayer提供了如下簡單的靜態方法。
static MediaPlayer create(Context context, Uri uri):從指定Uri來裝載音頻文件,並返回新創建的MediaPlayer對象。
static MediaPlayer create(Context context, int resid):從 resid資源 ID對應的資源文件中裝載音頻文件,並返回新創建的MediaPlayer對象。
提示:上而這兩個方法用起來非常方便,但這兩個方法每次都會返回新創建的MediaPlayer對象,如來程序需要使用MediaPlayer循環播放多個音頻文件,使用MediaPlayer的靜態create方法就不太合適了,此時可通過MediaPlayer的setDataSource()方法來裝載指定的音頻文件。MediaPlayer提供了如下方法來指定裝載相應的音頻文件。
setDataSource(String path):指定裝載path路徑所代表的文件。
setDataSource(FileDescriptor fd, long offset,long length):指定裝載fd所代表的文件中從offset開始長度為length的文件內容。
setDataSource(FileDescriptor fd):指定裝載fd所代表的文件。
setDataSource(Context context, Uri uri):指定裝載uri所代表的文件。
提示:執行上面所示的setDataSource()方法之後,MediaPlayer並未真正去裝載那些音頻文件,還需要調用MediaPlayer的prepare()方法去准備音頻,所謂「准備」,就是讓MediaPlayer真正去裝載音頻文件。
使用已有的MediaPlayer對象裝載「一首」歌曲的代碼模板為:

mPlayer.reset();
//裝戰下一竹歌曲
mPlayer.setDataSource(M/mnt/sdcard/next.mp3);
//准備聲音 mPlayer.prepare();
"播放
mPlayer.start();
}
catch (IOException e)
e.printStackTrace();
}

3.與MediaPlayer有關的事件監聽器:
MediaPlayer提供了一些綁定事件監聽器的方法,用於監聽MediaPlayer播放過程中所發生的特定事件,綁定事件監聽器的方法如下。
setOnCompletionListener(MediaPlayer.OnCompletionListener listener):為 Media Player的播放完成事件綁定事件監聽器。
setOnErrorListener(MediaPlayer.OnErrorListener listener):為MediaPlayer的播放錯誤事件綁定事件監聽器。
setOnPreparedListener(MediaPlayer.OnPreparedListener listener):當 MediaPlayer調用prepare()方法時觸發該監聽器。
setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener listener):當MediaPlayer調用seek()方法時觸發該監聽器。
因此可以在創建一個MediaPlayer對象之後,通過為該MediaPlayer綁定監聽器來監聽相應的事件,例如如下代碼:

//為MediaPlayer的播放完成事件綁定事件監聽器
mPlayer.setOnErrorListener(new OnErrorListener() {
@Override
publicboolean onError(MediaPlayer mp,int what,int extra) {
//TODO Auto-generated method stub
//針對錯誤進行相應的處理
// ... ...
}
});
//為MediaPlayer的播放完成講件綁定市件監聽器
mPlayer.setOnCompletionListener(new OnCompletionListener() {
@Override
publicvoid onCompletion(MediaPlayer mp) {
//TODO Auto-generated method stub
current++;
prepareAndPlay(current);
}
});

四、MediaPlayer播放不同來源的音頻文件:
1.播放應用的資源文件
播放應用的資源文件需要兩步即:
1) 調用MediaPlayer的create(Context context,int resid)方法加指定資源文件。
2) 調用 MediaPlayer的 start()、pause()、stop()等方法控制播放即可。
例如如下代碼:

MediaPlayer mPlayer=new MediaPlayer();
mPlayer.create(this, R.raw.music);

2. 播放應用的原始資源文件
播放應用的資源文件按如下步驟執行。
1) 調用 Context的 getAssets()方法獲取應用的 AssetManager。
2) 調用AssetManager對象的openFd(String name)方法打開指定的原生資源,該方法返回一個AssetFileDescriptor對象。
3) 調用 AssetFileDescriptor的 getFileDescriptor()、getStartOffset()和 getLength()方法來獲取音頻文件的FileDescriptor、開始位置、長度等。
4) 創建MediaPlayer對象(或利用已有的MediaPlayer對象),並調用MediaPlayer對象的setDataSource(FileDescriptor fd,long offset, long length)方法來裝載音頻資源。
5) 調用MediaPlayer對象的prepare()方法准備音頻。
6) 調用MediaPlayer的start()、pause()、stop()等方法控制播放即可。
例如如下代碼片段:

//獲取assets目錄下指定文件的AssetFileDescriptor對象
AssetFileDescriptor assetFileDescriptor=assetManager.openFd(musics[current]);
mediaPlayer.reset();//初始化mediaPlayer對象
mediaPlayer.setDataSource(assetFileDescriptor.getFileDescriptor(), assetFileDescriptor.getStartOffset(), assetFileDescriptor.getLength());
//准備播放音樂
mediaPlayer.prepare();
//播放音樂
mediaPlayer.start();

3. 播放外部存儲器上音頻文件
播放外部存儲器上音頻文件按如下步驟執行。
1) 創建MediaPlayer對象(或利用已有的MediaPlayer對象),並調用MediaPlayer對象的setDateSource(String path)方法裝載指定的音頻文件。
2) 調用MediaPlayer對象的prepare()方法准備音頻。
3) 調用MediaPlayer的start()、pause()、stop()等方法控制播放即可。
例如如下代碼:

//載入SD卡上的指定資源音頻文件
mPlayer.setDataSource("/mnt/You Are The One.mp3");
mPlayer.prepare();//准備因音頻
mPlayer.start();//播放音頻

4.播放來自網路的音頻文件
播放來自網路的音頻文件冇兩種方式:1.直接使用MediaPlayer的靜態create(Context context, Uri uri)方法;2.調用 MediaPlayer的setDataSource(Context context,Uri uri)裝載指定Uri對應的音頻文件。
以第二種方式播放來自網路的音頻文件的步驟如下。
1. 根據網路上的音頻文件所在的位置創建Uri對象。
2. 創建MediaPlayer對象(或利用己有的MediaPlayer對象),並調用MediaPlayer對象的 setDateSource(Context context,Uri uri)方法裝載Uri對應的音頻文件。
3. 調用MediaPlayer對象的prepare()方法准備音頻。
4. 調用MediaPlayer的start()、pause()、stop()等方法控制播放即可。

2. 各位推薦幾個好點的安卓系統的音樂播放器啊~~~

音樂播放神器PowerAMP是一款Android系統中用戶體驗最佳的音樂播放器,支持Android 2.0以上ROM,界面美觀,音質出眾。讓您的音樂世界從此更加完美。PowerAMP現在很火,谷歌電子市場要3美元,最新的488版本,沒有真正的破解版,但是這並不能阻礙音樂發燒友們對它的熱愛,其最新的477破解版在音效音質方面完勝其他所有音樂播放器,同樣能令安卓手機的音樂播放發揮到極致!

3. Android要求做一個一個簡易音樂播放器。用Service實現

android開發培訓一個簡單的Android音樂播放器
在這里主要是用兩個簡單的按鈕實現音樂的播放和停止功能,工程的目錄結構為:
同時添加一個文件夾,裡面放後綴為mp3的文件就可以了。 在main配置文件主要是添加兩個Button:
添加一個activity類和一個service類AndroidManifest.xml配置文件為:
創建一個MusicServiceActivity類啟動service類:中網互贏 手機客戶端

4. mediaplayer android 怎麼播放網路音樂

首先打開我們下載安裝好的Android Studio

然後我們寫入布局代碼,三個按鈕用來播放,停止,暫停
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<TextView android:text="音頻播放器" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView" />

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放"
android:id="@+id/button"
android:layout_weight="0.33" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="停止"
android:id="@+id/button2"
android:layout_weight="0.33" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="暫停"
android:id="@+id/button3"
android:layout_weight="0.33" />
</LinearLayout>

</RelativeLayout>

然後在res目錄下面添加raw文件夾下面添加my.mp3文件

然後我們在添加後台如下代碼後台代碼
package com.basillee.asus.demo;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;

public class MainActivity extends Activity {

private MediaPlayer mediaPlayer;//MediaPlayer對象
private boolean isPause=false;//是否暫停
private File file;//要播放的文件
private TextView hint;//聲明提示信息的文本框

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//獲取各功能按鈕
final Button button=(Button)findViewById(R.id.button);//播放
final Button button1=(Button)findViewById(R.id.button2);//暫停
final Button button2=(Button)findViewById(R.id.button3);//停止

hint=(TextView)findViewById(R.id.textView);
if(!isFileExist()){
button.setEnabled(false);
}
//對MediaPlayer對象添加事件監聽,當播放完成時重新開始音樂播放
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
play();
}
});

//對播放按鈕進行事件監聽
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
play();
if(isPause){
button1.setText("暫停");
isPause=false;
}
button1.setEnabled(true);
button2.setEnabled(true);
button.setEnabled(false);
}
});

//對暫停、繼續按鈕添加事件監聽器
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mediaPlayer.isPlaying()&&!isPause){
mediaPlayer.pause();
isPause=true;
((Button)v).setText("繼續");
hint.setText("暫停播放音頻....");
button.setEnabled(true);
}else{
mediaPlayer.start();
((Button)v).setText("暫停");
hint.setText("繼續播放音頻....");
button.setEnabled(false);
}
}
});

//對停止按鈕添加事件監聽器
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.stop();
hint.setText("停止播放音頻...");
button1.setEnabled(false);
button2.setEnabled(false);
button.setEnabled(true);
}
});
}

@Override
protected void onDestroy() {
if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
}
mediaPlayer.release();
super.onDestroy();
}

//判斷文件是否存在
private boolean isFileExist(){
file=new File(Environment.getExternalStorageDirectory()+File.separator+"myMP32.mp3");
if(file.exists()){
// mediaPlayer=new MediaPlayer();
mediaPlayer=MediaPlayer.create(this,R.raw.my);
try {

// mediaPlayer.setDataSource(file.getAbsolutePath());
// mediaPlayer.prepare();//預載入音頻
// mediaPlayer.start();//播放音樂
}catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(this,"file exist",Toast.LENGTH_LONG).show();
return true;
}else{
Toast.makeText(this,"file don't exist",Toast.LENGTH_LONG).show();
}
return false;
}

//播放音樂的方法
private void play(){
try{
mediaPlayer.reset();//從新設置要播放的音樂
// mediaPlayer.setDataSource(file.getAbsolutePath());
// mediaPlayer.prepare();//預載入音頻
mediaPlayer=MediaPlayer.create(this,R.raw.my);
mediaPlayer.start();//播放音樂
hint.setText("Music is starting");
} catch (Exception e) {
e.printStackTrace();
Log.e("err",e.getMessage());
}
return ;
}
}
主要是play方法

然後我們運行虛擬機如下圖所示:

6
然後我們運行此程序點擊播放按鈕就可以播放音樂了,其他按鈕功能大家可以自己試試。

5. 安卓本地音樂播放器推薦

  1. 安卓自帶的音樂播放器(UI不錯,音效也可以)

  2. 能量播放器(對於喜歡超強音效又不善於調節設置的朋友來說簡直是福音)

  3. rockplayer(如果你善於調節音效設置那麼這款播放器絕對帶給你從沒有過的聽覺享受)

  4. 小米播放器(小米系統自帶,不是小米系統的也可以下載,界面很簡潔)

  5. 推薦一款安卓最強(沒有之一)的音效驅動 viper4 不要錯過

6. android 音樂播放器 為什麼要用service

android的mediaplayer實現音樂播放器的功能的。其他部分就不說了。
首先,大家都應該使用過一些播放網路和本地音樂的軟體像酷我啊什麼的,應該很多的,模式什麼的應該也了解的。內核都差不多的。所以,軟體需要實現後台播放的功能就需要service的支持(當然也有其他的方法,本人覺得這個還是比較正規的方法了)
首先是:一個用來實現service和activity之間實現溝通的介面IService.java
這個介面就是在activity中使用的

7. 求一個安卓手機比較好用的本地音樂播放器,不要網路的。高分,謝謝。

天天動聽。現在哪個播放器沒聯網設置?都有,功能強大,當然你可以關閉自動下載歌詞、專輯圖片、軟體更新。這樣播放器就不會聯網。

8. Android開發,簡單的音樂播放器的完整代碼,含布局的。

手機設為離線模式不是無法定位,而是需要較長的時間,導航時手機會尋找衛星,但是,如果沒有輔助定位(A-GPS)的幫助,它會浪費很多時間去找合適的衛星,而使用A-GPS就需要通訊網路的支持,它能夠先計算你所在的大概位置,然後就有針對性地搜索衛星,快很多。

而車載導航儀就屬於專業、專門的設備,接收能力和功率等硬體設計都可以使其很方便和很專業地搜索衛星,即使衛星信號不太好,也能搜得到。它們的工作原理大致相同,只是功率和所使用的軟體不同

9. 請大蝦推薦一款android的音樂播放器,中文的

手機酷我音樂盒,安卓系統的很高級,塞班還沒有,下載就去天網吧,那裡有最新版

10. android 在線音樂播放器適合用什麼網路請求框架

簡單的當然是qq音樂播放器了,可電腦手機同步

熱點內容
java資料庫工具類 發布:2024-03-29 16:31:15 瀏覽:387
安卓機哪裡看型號 發布:2024-03-29 15:59:40 瀏覽:281
cad解壓錯誤 發布:2024-03-29 15:01:45 瀏覽:79
存儲指令集 發布:2024-03-29 14:39:27 瀏覽:649
資料庫表刪除數據 發布:2024-03-29 14:39:26 瀏覽:367
出c語言整除 發布:2024-03-29 14:28:22 瀏覽:572
芬尼壓縮機 發布:2024-03-29 14:24:11 瀏覽:464
電腦數據實時上傳本地伺服器軟體 發布:2024-03-29 14:07:57 瀏覽:920
尋秦記源碼 發布:2024-03-29 13:56:17 瀏覽:496
linux的備份命令 發布:2024-03-29 13:41:22 瀏覽:383