android开发中怎么在资源文件中获取mp3文件
5个回答
展开全部
把文件放在res/raw下,程序运行时把它释放到指定目录,代码如下:(供楼主参考)
private final String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/db_exam";
private final String DATABASE_FILENAME = "tel.db";
public void extractDBFileFromRes(){
try {
String dbFileName = DATABASE_PATH + "/" + DATABASE_FILENAME;
File dir = new File(DATABASE_PATH);
if (!dir.exists()){
dir.mkdir();
Log.i("SQLite", "dir made:" + DATABASE_PATH);
} else {
Log.i("SQLite", "dir exist:" + DATABASE_PATH);
}
try {
//如果数据凳亏库已经在SD卡的目录下存在,那么不需要重新创建,否则创建文件,并拷贝/res/raw下面的数据库文件
if (!(new File(dbFileName).exists())){
Log.i("SQLite", dbFileName + ":file not exist");
//res/raw数据库作为输出流
InputStream inputStream = this.getResources().openRawResource(R.raw.tel);
//测试
int size = inputStream.available();
Log.i("SQLite", "DATABASE_SIZE:" + 1);
Log.i("SQLite", "count:" + 0);
//用于存放数据晌粗梁库信息的数据流宴运
FileOutputStream fileOutputStream = new FileOutputStream(dbFileName);
byte[] buffer = new byte[8192];
int count = 0;
Log.i("SQLite", "count:" + count);
//把数据写入SD卡目录下
while ((count = inputStream.read(buffer)) > 0 ) {
fileOutputStream.write(buffer, 0, count);
}
fileOutputStream.flush();
fileOutputStream.close();
inputStream.close();
}
} catch (FileNotFoundException e) {
Log.e("Database", "File not found");
e.printStackTrace();
}
} catch (IOException e) {
Log.e("Database", "IO exception");
e.printStackTrace();
}
}
private final String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/db_exam";
private final String DATABASE_FILENAME = "tel.db";
public void extractDBFileFromRes(){
try {
String dbFileName = DATABASE_PATH + "/" + DATABASE_FILENAME;
File dir = new File(DATABASE_PATH);
if (!dir.exists()){
dir.mkdir();
Log.i("SQLite", "dir made:" + DATABASE_PATH);
} else {
Log.i("SQLite", "dir exist:" + DATABASE_PATH);
}
try {
//如果数据凳亏库已经在SD卡的目录下存在,那么不需要重新创建,否则创建文件,并拷贝/res/raw下面的数据库文件
if (!(new File(dbFileName).exists())){
Log.i("SQLite", dbFileName + ":file not exist");
//res/raw数据库作为输出流
InputStream inputStream = this.getResources().openRawResource(R.raw.tel);
//测试
int size = inputStream.available();
Log.i("SQLite", "DATABASE_SIZE:" + 1);
Log.i("SQLite", "count:" + 0);
//用于存放数据晌粗梁库信息的数据流宴运
FileOutputStream fileOutputStream = new FileOutputStream(dbFileName);
byte[] buffer = new byte[8192];
int count = 0;
Log.i("SQLite", "count:" + count);
//把数据写入SD卡目录下
while ((count = inputStream.read(buffer)) > 0 ) {
fileOutputStream.write(buffer, 0, count);
}
fileOutputStream.flush();
fileOutputStream.close();
inputStream.close();
}
} catch (FileNotFoundException e) {
Log.e("Database", "File not found");
e.printStackTrace();
}
} catch (IOException e) {
Log.e("Database", "IO exception");
e.printStackTrace();
}
}
展开全部
用ContentResolver去query MediaStore.Audio.Media.EXTERNAL_CONTENT_URI这个数据库
MediaStore.Audio.Media.TITLE 字段是曲名
MediaStore.Audio.Media.ARTIST 字段是歌手
MediaStore.Audio.Media.ARTIST 字段是专辑顷搭
MediaStore.Audio.Media.DURATION 字段是时间岩猛 单位是毫秒
MediaStore.Audio.Media.DATA 字雀枣拿段是文件位置
MediaStore.Audio.Media.DISPLAY_NAME 字段是显示名称
MediaStore.Audio.Media.TITLE 字段是曲名
MediaStore.Audio.Media.ARTIST 字段是歌手
MediaStore.Audio.Media.ARTIST 字段是专辑顷搭
MediaStore.Audio.Media.DURATION 字段是时间岩猛 单位是毫秒
MediaStore.Audio.Media.DATA 字雀枣拿段是文件位置
MediaStore.Audio.Media.DISPLAY_NAME 字段是显示名称
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,衫运
安卓MediaPlayer player = MediaPlayer.create(this,R.raw.test);
player.stare();
播放音频文件或让梁,滑氏文件放在raw文件夹下
安卓MediaPlayer player = MediaPlayer.create(this,R.raw.test);
player.stare();
播放音频文件或让梁,滑氏文件放在raw文件夹下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MediaPlayer player = MediaPlayer.create(this,R.raw.test);
player.stare();
播帆闷清放音频文件态前,文件罩孙放在raw文件夹下。
player.stare();
播帆闷清放音频文件态前,文件罩孙放在raw文件夹下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MediaPlayer player = MediaPlayer.create(this,R.raw.test);
player.stare();
播放音频哪袜文盯胡件李则激,文件放在raw文件夹下。。。
player.stare();
播放音频哪袜文盯胡件李则激,文件放在raw文件夹下。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询