最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android實現(xiàn)小音頻頻繁播放

 更新時間:2020年01月10日 11:58:19   作者:愛碼士_yan  
這篇文章主要為大家詳細介紹了android實現(xiàn)小音頻頻繁播放,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

android中多媒體文件(音樂和視頻)的播放是用MediaPlayer方式是大家比較熟悉的,但是現(xiàn)在要來說一下另外一種音樂文件播放的方式SoundPool,相比較而言,用MediaPlayer來播放音樂的話,占用的系統(tǒng)資源是很多的,加載資源也需要時間,所以它不適合用來頻繁播放小音頻文件,比如控件焦點、點擊時需要播放小音頻文件,這個時候用SoundPool來播放音頻文件,比用MediaPlayer來播放效率要高很多。這里也來說說,如果用MediaPlayer來播放小音頻文件的話,會出現(xiàn)延時,點擊了之后等會兒才出現(xiàn)聲音。所以,SoundPool比MediaPlayer更輕量級,適合用于頻繁播放的小音頻文件。
下面就來說說它的用法:

第一步:放置目標音頻文件

將音頻文件放在res/raw目錄下,這樣就可以通過R來引用它了。如果想放在Assert目錄下也是可以的,這里先放在raw下。

第二步:編寫音頻播放的類

public class MusicPlayer {
  private Context mContext ;
  private static MusicPlayer sInstance ;
  static class Type{
    public final static int MUSIC_CLICK = 1 ;
    public final static int MUSIC_FOCUSED = 2 ;
  }
  private SoundPool mSp ;
  private Map<integer ,integer=""> sSpMap ;
  private MusicPlayer(Context context){
    mContext = context ;
    sSpMap = new TreeMap<integer ,integer="">() ;
    mSp = new SoundPool(10 ,AudioManager.STREAM_MUSIC ,100) ;
    sSpMap.put(Type.MUSIC_CLICK, mSp.load(mContext, R.raw.click, 1)) ;
    sSpMap.put(Type.MUSIC_FOCUSED, mSp.load(mContext, R.raw.focused, 1)) ;
  }
   
  public static MusicPlayer getInstance(Context context){
    if(sInstance == null)
      sInstance = new MusicPlayer(context) ;
    return sInstance ;
  }
   
  public void play(int type){
    if(sSpMap.get(type) == null) return ;
    mSp.play(sSpMap.get(type), 1, 1, 0, 0, 1) ;
  }
}

第三步:調(diào)用接口,播放音頻

// 在界面上需要這樣調(diào)用
// 初始化
mMusic = MusicPlayer.getInstance(MainActivity.this) ;
// 在onClick中播放click時的聲音
mMusic.play(MusicPlayer.Type.MUSIC_CLICK) ;
// 在onFocusChange中聚焦狀態(tài)播放聚焦的聲音
mMusic.play(MusicPlayer.Type.MUSIC_FOCUSED) ;

如果想放在Assert中的話,要注意在引用音頻文件時要用AssetFileDescriptor,具體方式如下:

MediaPlayer mMediaPlayer = new MediaPlayer() ; 
  AssetFileDescriptor fd = mContext.getAssets().openFd(“music/click.pm3”) ; // assert目錄下的music目錄
  mMediaPlayer.setDataSource(fd.getFileDescriptor() ,fd.getStartOffset() ,fd.getLength()) ;
  mMediaPlayer.prepare() ;
  mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer arg0) {
      mMediaPlayer.release() ;
    }
  }) ;
  mMediaPlayer.setOnErrorListener(new OnErrorListener() {
    @Override
    public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
      mMediaPlayer.release() ;
      return false;
    }
  }) ;
mMediaPlayer.start() ;

注意:在用MediaPlayer時要記住釋放資源!在兩個回調(diào)接口中實現(xiàn)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android實現(xiàn)底部支付彈窗效果

    Android實現(xiàn)底部支付彈窗效果

    這篇文章主要為大家詳細介紹了Android實現(xiàn)底部支付彈窗效果的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android自定義view實現(xiàn)側(cè)滑欄詳解

    Android自定義view實現(xiàn)側(cè)滑欄詳解

    之前一直沒有寫側(cè)滑菜單的實現(xiàn)方法,今天計劃補上。手機開發(fā)中,往往存在很多功能沒處放的問題。我們可能會把功能放入一個菜單列表,但現(xiàn)在一種流行的做法是側(cè)滑菜單
    2022-11-11
  • Android實現(xiàn)獲取聯(lián)系人電話號碼功能

    Android實現(xiàn)獲取聯(lián)系人電話號碼功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)獲取聯(lián)系人電話號碼功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Android 百分比布局詳解及實例代碼

    Android 百分比布局詳解及實例代碼

    這篇文章主要介紹了Android 百分比布局詳解及實例代碼的相關(guān)資料,這里附有代碼實例幫助大家學(xué)習(xí)參考,如何實現(xiàn)百分比布局,需要的朋友可以參考下
    2016-11-11
  • Android靜態(tài)變量的生命周期 簡單介紹

    Android靜態(tài)變量的生命周期 簡單介紹

    Android靜態(tài)變量的生命周期 簡單介紹,需要的朋友可以參考一下
    2013-06-06
  • Android 靜默安裝和智能安裝的實現(xiàn)方法

    Android 靜默安裝和智能安裝的實現(xiàn)方法

    靜默安裝就是無聲無息的在后臺安裝apk,沒有任何界面提示。智能安裝就是有安裝界面,但全部是自動的,不需要用戶去點擊。下面腳本之家小編給大家介紹下Android 靜默安裝和智能安裝的實現(xiàn)方法,感興趣的朋友一起看看吧
    2018-01-01
  • Android5.0新特性詳解之全新的動畫

    Android5.0新特性詳解之全新的動畫

    這篇文章主要介紹了Android5.0新特性詳解之全新的動畫的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • Android Studio中的Gradle依賴深入講解

    Android Studio中的Gradle依賴深入講解

    Android Studio由于使用了gradle的進行項目構(gòu)建,使我們開發(fā)app方便很多,下面這篇文章主要給大家介紹了關(guān)于Android Studio中Gradle依賴的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-09-09
  • Andoroid實現(xiàn)底部圖片選擇Dialog效果

    Andoroid實現(xiàn)底部圖片選擇Dialog效果

    這篇文章主要介紹了Andoroid實現(xiàn)底部圖片選擇Dialog效果,需要的朋友可以參考下
    2017-10-10
  • Android如何自定義按鈕效果

    Android如何自定義按鈕效果

    這篇文章主要為大家詳細介紹了Android如何自定義按鈕效果的方法,幫助大家設(shè)計簡潔大方的按鈕,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

额敏县| 来凤县| 浦北县| 南丰县| 白朗县| 手机| 高尔夫| 天祝| 沙坪坝区| 房产| 云阳县| 万安县| 嵊泗县| 溧水县| 皋兰县| 南溪县| 金寨县| 庄浪县| 乐陵市| 喀什市| 贵定县| 新蔡县| 循化| 十堰市| 尉犁县| 达拉特旗| 枝江市| 大埔县| 蒲城县| 上饶市| 鹤峰县| 康定县| 罗平县| 资中县| 梁河县| 靖州| 辽宁省| 商都县| 襄汾县| 唐山市| 元阳县|