導航:首頁 > 操作系統 > android實現在線播放

android實現在線播放

發布時間:2025-09-24 08:48:38

android 如何實現音樂播放

在Android平台下,要實現聲音的播放是十分容易實現的,只要生成一個MediaPlayer對象,並調用它的相關方法,就能改變對聲音播放進行控制。MediaPlayer對象有一下各種狀態:

熟悉了MediaPlayer對象的各種狀態後以及轉換條件,就能很好的控制媒體播放。

例如:播放res/raw文件夾中的歌曲十分簡單,只需寫如下代碼:

MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);

mp.start();
也可以指定音樂文件的位置來進行播放,例如,在sdcard根目錄下有有一首歌曲:test.mp3。則可以這樣播放:
MediaPlayer mp = new MediaPlayer();
String song = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "test.mp3";
try {
mp.setDataSource(song);
mp.prepare();
mp.start();
} catch (Exception e) {
e.printStackTrace();
}

建議在播放音樂的時候把MediaPlayer放在Service中,因為如果放在Activity中會使得界面特別卡。而且音樂不能放到後台里播放,一旦退出Activity,音樂就會暫停播放。

可以在Activity中布局相關的界面,例如按鈕等。然後通過這個Activitiy來啟動這個Service。要通過UI與Service交互,可以通過Intent對象傳遞消息。更復雜一些,要實現Service向Activity發送消息,並利用這些消息來更新UI,這可以用廣播機制,例如告訴Activity是否正在播放,播放進度,當前播放歌曲條目等信息。

例如以下實例代碼:

/*Activity中*/

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnPlay = (Button)findViewById(R.id.btnPlay);
btnPause = (Button)findViewById(R.id.btnPause);
btnPlay.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,SoundService.class);
intent.putExtra("playing", true);
startService(intent);
}
});

btnPause.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,SoundService.class);
intent.putExtra("playing", false);
startService(intent);
}
});
}
}

播放音樂的Service代碼:

package com.yzy.sound;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;

public class SoundService extends Service {
private MediaPlayer mp;

@Override
public void onCreate() {
super.onCreate();
mp = MediaPlayer.create(this, R.raw.test);
}

@Override
public void onDestroy() {
super.onDestroy();
mp.release();
stopSelf();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
boolean playing = intent.getBooleanExtra("playing", false);
if (playing) {
mp.start();
} else {
mp.pause();
}
return super.onStartCommand(intent, flags, startId);
}

@Override
public IBinder onBind(Intent intent) {
return null;
}

}

Ⅱ Android實現視頻播放的幾種方式

Android提供了常見的視頻編碼,解碼機制,使用Android自帶的MediaPlayer,MediaController等類可以很方便的實現視頻播放的功能。支持的視頻格式有MP4和3GP等。這些多媒體數據可以來自於Android應用的資源文件,也可以來自於外部存儲器上的文件,甚至可以是來自於網路上的文件流。

1、MediaController+VideoView實現方式

這種方式是最簡單的實現方式。VideoView繼承了SurfaceView同時實現了MediaPlayerControl介面,MediaController則是安卓封裝的輔助控制器,帶有暫停,播放,停止,進度條等控制項。通過VideoView+MediaController可以很輕松的實現視頻播放、停止、快進、快退等功能。

布局文件如下:

使用此實現方式的步驟:

1.載入指定的視頻文件

2.建立VideoView和MediaController之間的關聯,這樣就不需要自己去控制視頻的播放、暫停等。讓MediaController控制即可。

3.VideoView獲取焦點。

2、MediaPlayer+SurfaceView+自定義控制器

雖然VideoView的實現方式很簡單,但是由於是自帶的封裝好的類,所以無論是播放器的大小、位置以及控制都不受我們控制。

這種實現方式步驟如下:

1.創建MediaPlayer對象,並讓它載入指定的視頻文件。可以是應用的資源文件、本地文件路徑、或者URL。

2.在界面布局文件中定義SurfaceView組件,並為SurfaceView的SurfaceHolder添加Callback監聽器。

3.調用MediaPlayer對象的setDisplay(SurfaceHolder sh)將所播放的視頻圖像輸出到指定的SurfaceView組件。

4.調用MediaPlayer對象的prepareAsync()或prepare()方法裝載流媒體文件

5.調用MediaPlayer對象的start()、stop()和pause()方法來控制視頻的播放。

在實現第二步之前需要先給surfaceHolder設置一個callback,callback的3個回調函數如下:

3、MediaPlayer+SurfaceView+MediaController

第二種實現方式使用的是自定義控制項,MediaPlayer+SurfaceView也可以使用系統自帶的MediaController控制器。

使用這個方式實現,布局文件只需一個SurfaceView即可,其他的控制項都交給MediaController控制器,布局文件如下:

實際過程中推薦大家使用B站的播放器ijkplayer非常好用!

閱讀全文

與android實現在線播放相關的資料

熱點內容
貓頭鷹小說APP怎麼樣 瀏覽:840
伺服器如何看埠 瀏覽:818
游戲程序員門檻 瀏覽:337
音頻加密軟體哪個好 瀏覽:691
51單片機怎麼查風扇 瀏覽:459
稅務局app怎麼下載 瀏覽:385
androidvolley源碼 瀏覽:773
程序員試用期犯錯 瀏覽:512
關於單片機的外文翻譯 瀏覽:523
軟體加密鎖拆卸視頻 瀏覽:861
如何登錄gg伺服器 瀏覽:177
赫克系統編程 瀏覽:771
javapdf讀取 瀏覽:418
程序員的成就感在哪裡 瀏覽:529
文件夾如何查詢 瀏覽:957
app惡意套取身份信息怎麼舉報 瀏覽:779
沈陽牛創少兒編程 瀏覽:800
美團app工資計算器怎麼沒有了 瀏覽:134
android實現在線播放 瀏覽:436
cyf文件夾丟失 瀏覽:332