日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android播放mp3方法,Android之MediaPlayer播放音频与视频

發布時間:2024/10/8 Android 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android播放mp3方法,Android之MediaPlayer播放音频与视频 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節帶來的是Android多媒體中的——MediaPlayer,我們可以通過這個API來播放音頻和視頻 該類是Androd多媒體框架中的一個重要組件,通過該類,我們可以以最小的步驟來獲取,解碼 和播放音視頻。它支持三種不同的媒體來源:

本地資源

內部的URI,比如你可以通過ContentResolver來獲取

外部URL(流) 對于Android所支持的的媒體格式列表

使用MediaPlayer播放音頻:

1)獲得MediaPlayer實例:

MediaPlayer mp = new MediaPlayer();

MediaPlayer mp = MediaPlayer.create(this, R.raw.test); //無需再調用setDataSource

另外create還有這樣的形式: create(Context context, Uri uri, SurfaceHolder holder) 通過Uri和指定 SurfaceHolder 【抽象類】 創建一個多媒體播放器

2)設置播放文件:

//①raw下的資源:

MediaPlayer.create(this, R.raw.test);

//②本地文件路徑:

mp.setDataSource("/sdcard/test.mp3");

//③網絡URL文件:

mp.setDataSource("http://www.xxx.com/music/test.mp3");

另外setDataSource()方法有多個,里面有這樣一個類型的參數:FileDescriptor,在使用這個 API的時候,需要把文件放到res文件夾平級的assets文件夾里,然后使用下述代碼設置DataSource:

AssetFileDescriptor fileDescriptor = getAssets().openFd("rain.mp3");

m_mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());

3)其他方法

Paste_Image.png

實例

//[1]初始化mediaplayer

MediaPlayer mediaPlayer = new MediaPlayer();

//[2]設置要播放的資源位置 path 可以是網絡 路徑 也可是本地路徑

try {

mediaPlayer.setDataSource("/mnt/sdcard/xpg.mp3");

//[3]準備播放

mediaPlayer.prepare();

//[4]開始播放

mediaPlayer.start();

} catch (Exception e) {

e.printStackTrace();

}

本地Uri:

Uri myUri = ....; // initialize Uri here

MediaPlayer mediaPlayer = new MediaPlayer();

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

mediaPlayer.setDataSource(getApplicationContext(), myUri);

mediaPlayer.prepare();

mediaPlayer.start();

網絡音頻

String url = "http://........"; // your URL here

MediaPlayer mediaPlayer = new MediaPlayer();

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

mediaPlayer.setDataSource(url);

mediaPlayer.prepare(); // might take long! (for buffering, etc)

mediaPlayer.start();

使用MediaPlayer播放視頻:

MediaPlayer主要用于播放音頻,沒有提供圖像輸出界面,所以我們需要借助其他的 組件來顯示MediaPlayer播放的圖像輸出,我們可以使用用SurfaceView 來顯示,下面我們使用SurfaceView來寫個視頻播放的例子:

//[0]找到控件用來顯示播放視頻的內容

final SurfaceView sfv = (SurfaceView) findViewById(R.id.sfv);

//獲取holder 對象 用來維護視頻播放的內容

SurfaceHolder holder = sfv.getHolder();

//[0.1]添加holder 生命周期 方法

holder.addCallback(new Callback() {

//當surface view 銷毀

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

System.out.println("surfaceDestroyed");

//停止播放視頻

if (mediaPlayer!=null && mediaPlayer.isPlaying()) {

//獲取到當前播放視頻的位置

currentPosition = mediaPlayer.getCurrentPosition();

mediaPlayer.stop();

}

}

//這個方法執行了 說明sufaceView準備好了

@Override

public void surfaceCreated(SurfaceHolder holder) {

//[1]初始化mediaplayer

System.out.println("surfaceCreated");

mediaPlayer = new MediaPlayer();

//[2]設置要播放的資源位置 path 可以是網絡 路徑 也可是本地路徑

try {

mediaPlayer.setDataSource("http://192.168.11.86:8080/cc.MP4");

//[3]準備播放

mediaPlayer.prepareAsync();

//[3.0]設置顯示給sfv sufraceholder 是用來維護視頻播放的內容

mediaPlayer.setDisplay(holder);

//[3.1]設置一個準備完成的監聽

mediaPlayer.setOnPreparedListener(new OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mp) {

//[4]開始播放

mediaPlayer.start();

//[5]繼續上次的位置繼續播放

mediaPlayer.seekTo(currentPosition);

}

});

} catch (Exception e) {

e.printStackTrace();}}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

}

});

使用VideoView播放視頻

// 插件vitamio框架檢查是否可用

if (!LibsChecker.checkVitamioLibs(this)) {

return;

}

final VideoView vv = (VideoView) findViewById(R.id.vv);

vv.setVideoPath("http://192.168.11.86:8080/aa.avi");

vv.setOnPreparedListener(new OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mp) {

vv.start();

}

});

//設置video的控制器

vv.setMediaController(new MediaController(this));

總結

以上是生活随笔為你收集整理的android播放mp3方法,Android之MediaPlayer播放音频与视频的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。