Android 使用MediaPlayer播放assets或者raw目錄的音訊檔案
原始碼下載:
https://download.csdn.net/download/qq_31939617/10443928下載
使用MediaPlayer播放assets目錄下的媒體檔案
1) 通過Context.getAssets()方法獲得AssetManager物件
2) 通過AssetManager物件的openFd(String name)方法開啟指定的原生資原始檔夾,返回一個AssetFileDescriptor物件
3) 通過AssetFileDescriptor的getFileDescriptor()得到一個FileDescriptor物件
4) 通過public void setDataSource (FileDescriptor fd, long offset, long length)來建立MediaPlayer物件
5) 呼叫MediaPlayer.prepare()方法準備音訊
6) 呼叫MediaPlayer的start()、pause()、stop()等方法控制
先上圖:
MainActivity.class
package com.example.sz.mediaplayerdemo;
import android.content.Context;
import android.media.AudioManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.MediaPlayer;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import java.io.IOException;
/**
* 使用MediaPlayer播放asset目錄下的音樂MP3和raw目錄下的音樂MP3
*/
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "MainActivity";
private Button openAssetMusic;
private MediaPlayer mediaPlayer;
private Button pause;
private Button openRawMusic;
private Button pauseRawMusic;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
openAssetMusic = findViewById(R.id.openAssetMusic);
openAssetMusic.setOnClickListener(this);
pause = findViewById(R.id.pause);
pause.setOnClickListener(this);
openRawMusic = findViewById(R.id.openRawMusic);
openRawMusic.setOnClickListener(this);
pauseRawMusic = findViewById(R.id.pauseRawMusic);
pauseRawMusic.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.openAssetMusic:
//開始播放
openAssetMusics();
break;
case R.id.pause:
//暫停播放
mediaPlayer.pause();
break;
case R.id.openRawMusic:
//開始播放
openRawMusicS();
break;
case R.id.pauseRawMusic:
//暫停播放
mediaPlayer.pause();
break;
}
}
/**
* 開啟raw目錄下的音樂mp3檔案
*/
private void openRawMusicS() {
mediaPlayer = MediaPlayer.create(this, R.raw.please_get_close);
//用prepare方法,會報錯誤java.lang.IllegalStateExceptio
//mediaPlayer.prepare();
mediaPlayer.start();
}
/**
* 開啟assets下的音樂mp3檔案
*/
private void openAssetMusics() {
try {
//播放 assets/a2.mp3 音樂檔案
AssetFileDescriptor fd = getAssets().openFd("identification_success.mp3");
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="assets播放"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/openAssetMusic"/>
<Button
android:text="暫停assets"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/pause"/>
<Button
android:text="raw播放"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/openRawMusic"/>
<Button
android:text="暫停raw"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/pauseRawMusic"/>
</LinearLayout>
原始碼下載:
https://download.csdn.net/download/qq_31939617/10443928下載
相關推薦
Android 使用MediaPlayer播放assets或者raw目錄的音訊檔案
原始碼下載: https://download.csdn.net/download/qq_31939617/10443928下載 使用MediaPlayer播放assets目錄下的媒體檔案 1) 通過Context.getAssets()方法獲得Asset
Android如何獲取assets或者raw目錄的視訊檔案路徑播放視訊
獲取assets的檔案方法 String mp4FilePath = "file:///android_asset/Kotlin與ava共存.mp4"; 再呼叫 mVideoVie
【Android實戰】播放assets或者raw資料夾下的視訊檔案
(1)assets資料夾下 AssetFileDescriptor afd = getAssets().openFd("guide_video.mp4"); mediaPlayer.setDataSource(afd.getFileDescript
android播放assets資料夾下音訊檔案
<span style="white-space:pre"> </span>/** * 把音樂音量強制設定為最大音量 */ AudioManager mAudioManager = (AudioManager) getSystemS
Android 使用MediaPlayer播放assets目錄的音訊檔案
private AssetManager assetManager; private MediaPlayer playRing() { MediaPlayer player = null; try {
Android MediaPlayer播放raw資源封裝類
import android.content.Context; import android.media.MediaPlayer; import com.bhuitong.yibaocan.R; public class MediaUtil { MediaPlayer mPlay
Android MediaPlayer 播放器網路音訊播放總結
在近期的Android 系統MediapPalyer使用中,碰到了不少問題。其中一些問題也是在特殊的條件下才會出現,嘗試很多方法才解決。這裡做了總結,也跟大家分享一下: 1.播放器需要多執行緒實現 一般我們會把MediaPlayer放到Ser
Android MediaPlayer播放音訊與視訊
使用MediaPlayer播放音訊與視訊 播放音訊 首先創建出一個MediaPlayer物件 MediaPlayer mMediaPlayer = new MediaPlayer(
Android MediaPlayer 播放各種來源的音訊檔案,特效控制
MediaPlayer通過資源ID播放Raw目錄下音訊資原始檔: MediaPlayer mMediaPlayer; mMediaPlayer = MediaPlayer.create(th
Android 中級教程之------Android MediaPlayer播放mp3的例項!
Android 中級教程之——Android MediaPlayer播放mp3的例項! 大家好我們今天研究的是Android中很重要也最為複雜的媒體播放器—MediaPlayer. Android的MediaPlayer包含了Audio和video的播放
Android複製res/raw目錄的檔案到SD卡下
前言 在應用開發中,我們會經常遇到操作工程中assets和res/raw目錄下的檔案,那麼這兩個目錄有什麼用呢?assets和res/raw工程目錄下都可以存放一些小於1M(2.3版本以前要求,否則將不能讀出資料。),這些檔案將被打包到APK中供應用使用。as
Android mediaplayer 播放本地音樂檔案
上一個部落格講到了搜尋本地音樂檔案,那麼當搜尋到後,我們怎麼使用這個音樂檔案呢?當然是根據路徑來播放他,而要播放音樂,自然而然是要用到Android的mediaplayer這個類。 對於mediapl
android Mediaplayer 播放視訊 只有聲音沒有畫面的問題
剛剛解決了 mediaplayer 和SurfaceView播放視訊 只有聲音沒有畫面的問題, 最終確定為,holder.setFixedSize(width,heigh); 設定解析度的方法,放在了 mediaplayer的回撥函式裡,導致沒有畫面, 把這個holder.
Android Mediaplayer播放時設定頻譜
仿網易雲音樂播放時跳躍的頻譜狀態,此案例是根據聲音的大小動態的設定跳動頻率和高度,而網易雲音樂是固定的。 //建立一個展示音波柱的自定義View VisualizerView mVisualizerView = new VisualizerView(); 給
Java 音樂播放器開發學習之——音訊檔案的播放
Java Sound API是javaSE平臺提供底層的(low-level)處理聲音介面,可以實現音訊檔案的播放。 其核心包括: AudioSystem AudioInputStream AudioFormat DataLine.Info S
Android之動態修改system/etc目錄下檔案的一種實現方式-SELinux
在沒有root的前提下,system分割槽為只讀,若要動態修改該分割槽下的檔案,可以按照下面流程實現: 1.寫執行指令碼,這裡以修改system/etc/hosts檔案為例,在/device/mediatek/mt67xx目錄下建立名為modifyhosts.sh的檔案,檔
linux下wget如何下載整個網站,或者特定目錄全部檔案
需要下載某個目錄下面的所有檔案。命令如下wget -c -r -np -k -L -p www.xxx.org/pub/path/在下載時。有用到外部域名的圖片或連線。如果需要同時下載就要用-H引數。wget -np -nH -r –span-hosts www.xxx.o
Android簽名與認證META-INFO目錄下檔案
一、Android簽名概述 我們已經知道的是:Android對每一個Apk檔案都會進行簽名,在Apk檔案安裝時,系統會對其簽名信息進行比對,判斷程式的完整性,從而決定該Apk檔案是否可以安裝,在一定程度上達到安全的目的。 給定一個Apk檔案,解壓,可以看到一個META
利用pot播放器將視訊的音訊檔案抽離。
當我們需要將一個視訊的音訊抽離出來的時候,最先想到的就是Au,但這種比較“重”的方法就不適合我這種“懶人”,哈哈。 好了,言歸正傳,現在和大家分享一個比較簡單的辦法。 利用potPlayer這款軟體,軟體地址:連結:https://pan.baidu.co
Android提高第二十篇之MediaPlayer播放網路音訊
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!