這裏介紹兩種播放資源文件的方法:ide
第一種、oop
assets類資源放在工程根目錄的assets子目錄下,它裏面保存的是一些原始的文件,能夠以任何方式來進行組織。這些文件最終會被原裝不動地打包在apk文件中。若是咱們要在程序中訪問這些文件,那麼就須要指定文件名來訪問。這裏把要添加的音樂文件加入進去this
添加play()方法。spa
protected void play(){ AssetManager am = getAssets(); try { mpMediaPlayer.setDataSource(am.openFd("first.mp3").getFileDescriptor()); mpMediaPlayer.prepare(); mpMediaPlayer.start(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
第二種、
在res文件夾下添加raw文件夾,在raw文件夾下添加音樂文件,繼續添加音樂文件,後添加paly方法3d
protected void play(){ mpMediaPlayer=MediaPlayer.create(this, R.raw.first); try { mpMediaPlayer.prepare(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } mpMediaPlayer.start(); }
res/raw目錄下的資源,和assets類資源同樣,都是原裝不動地打包在apk文件中的,不過它們會被賦予資源ID,這樣咱們就能夠在程序中經過ID來訪問它們。code
實現音樂文件的重複播放:blog
//音樂重複播放 mpMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer arg0) { mpMediaPlayer.start(); mpMediaPlayer.setLooping(true); } });