鸿蒙开发小应用-音乐播放器
话不多说,展示。
第一次进去会申请访问权限,点击“始终允许”
点击“始终允许”后退出一下,再次点击进入该应用会看到一首音乐Dream it Possible,因为模拟器上只有这一首主题曲,可以点击播放。
播放器内容包括:播放器名称,音乐名,音乐作曲家,背景图,三个控制播放/暂停,上一曲/下一曲的按钮。
开发导图
一:资源获取
权限申请
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setMainRoute(MainAbilitySlice.class.getName());
if (verifySelfPermission("ohos.permission.READ_MEDIA") != IBundleManager.PERMISSION_GRANTED) {
if (canRequestPermission("ohos.permission.READ_MEDIA")) {
// 是否可以申请弹框授权(首次申请或者用户未选择禁止且不再提示)
requestPermissionsFromUser(
new String[]{
"ohos.permission.READ_MEDIA"}, MY_PERMISSIONS_REQUEST_RW);
} else {
new ToastDialog(this).setText("需要授予应用读取存储权限").setAlignment(LayoutAlignment.CENTER).show();
}
}
}
当权限可以申请时需要重写下面的方法,获取权限申请的结果
@Override
public void onRequestPermissionsFromUserResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == MY_PERMISSIONS_REQUEST_RW) {
// 匹配requestPermissions的requestCode
if (grantResults.length > 0
&& grantResults[0] == IBundleManager.PERMISSION_GRANTED) {
new ToastDialog(this).setText("所有权限已经被授予").setAlignment(LayoutAlignment.CENTER).show();
} else {
new ToastDialog(this).setText("所有权限已经被拒绝").setAlignment(LayoutAlignment.CENTER).show();
}
}
}
数据模型
一个音乐的实体类
public class MusicBean {
private int id;
private String title;
private String song;
private String data;
private String duration;
private String artist;
private String album;
构造方法,get,set方法省略
}
数据读取
数据读取需要做两件事1.通过访问外部存储的URL获取ResultSet
private ResultSet queryAvStore(Context context) {
ResultSet resultSet = null;
DataAbilityHelper helper = DataAbilityHelper.creator(context);
try {
resultSet = helper.query