因为现在公司要求AndroidStudio开发的比较多,本人也是想熟悉熟悉软件,就用AndroidStudio写写Demo
今天做猜歌游戏的时候,通过AssetManager对象怎么也拿不到assets目录下的音乐文件
看了半天的代码,也没有错误。后来找度娘,告诉我assets目录在AndroidStudio中要放在main里面,和java,res目录是同级关系的。而在Eclipse中是放在根项目下。
果然秒解决!
直接发一下播放音乐的代码
import android.content.Context; import android.content.res.AssetFileDescriptor; import android.content.res.AssetManager; import android.media.MediaPlayer; import java.io.IOException; /** * Created by Mobile Developer on 2016/3/2. */ public class MyPlayer { private MyPlayer() {} private static MediaPlayer mMediaPlayer; /** * 播放音效 * @param context * @param fileName */ public static void playSong(Context context,String fileName) { if(mMediaPlayer == null) { mMediaPlayer = new MediaPlayer(); } //每次播放或第二次播放的时候需要重置 mMediaPlayer.reset(); //获取资产目录管理者 AssetManager manager = context.getAssets(); try { //通过管理者拿到资产目录下的指定的音效 AssetFileDescriptor descriptor = manager.openFd(fileName); //将播放的任务交给mediaPlay mMediaPlayer.setDataSource(descriptor.getFileDescriptor(),descriptor.getStartOffset(),descriptor.getLength()); //预备 mMediaPlayer.prepare(); //跑 mMediaPlayer.start(); } catch(IOException e) { e.printStackTrace(); } } /** * 停止音效 * @param context */ public static void stopSong(Context context) { if(mMediaPlayer != null) { mMediaPlayer.stop(); } } }