迷你播放器--第一阶段(4)
内存卡检索不到音乐的错误处理--程序内部空间管理
本文章为CSDN作者原创,转载请保留出处:http://blog.csdn.net/lrs0304/article/details/38355633
查看项目源代码请前往:迷你播放器-综述
请注意,该项目为android项目,如果已经学习过这一节请阅读下一篇。
先上效果图(这是内存卡没有音乐的情况)
对于某些特殊情况,用户可能没有插上内存卡或者内存卡没有歌曲,那么这个播放器就相当于没用了,如果我们想它还能继续干活呢?
我们可以附带一个很小的歌曲,例如mid格式的纯音乐,在遇到上述情况的时候将音乐复制到程序目录下,然后加入到列表里面。
下面是处理的代码
if (m_MusicFileList.size() == 0) {// 如果没有音乐
@SuppressWarnings("deprecation")
String temMusicPath = this.getDir("music", MODE_WORLD_READABLE)
.toString() + "/fengyuwuzu.mid";
try {
InputStream is = this.getResources().openRawResource(
R.raw.fengyuwuzu);
File music = new File(temMusicPath);
music.deleteOnExit();
FileOutputStream fos = new FileOutputStream(music);
byte[] buffer = new byte[2014];
int count = 0;
while ((count = is.read(buffer)) > 0) {
fos.write(buffer, 0, count);// 不是很懂
}
fos.close();// 关闭流
is.close();
Process p;// 配置权限
p = Runtime.getRuntime().exec("chmod 777 " + temMusicPath);
int status = p.waitFor();
if (status == 0) {
System.out.println("权限配置成功");
MusicData localMusic = new MusicData();
localMusic.mMusicAritst = "周华健";
localMusic.mMusicName = "风雨无阻-播放器自带";
localMusic.mMusicPath = temMusicPath;
localMusic.mMusicTime = 259000;// 毫秒为单位
m_MusicFileList.add(localMusic);
} else {
System.out.println("权限配置失败");
music.deleteOnExit();// 没配置成功,不要了
}
} catch (Exception e) {
e.printStackTrace();
}
}