概述
Android实现选择本地音乐
- 一、目标
- 二、实现代码
- 三、遇到的问题
- 四、过程回顾
- 五、优化方案
- 六、接下来
- 七、Finally
一、目标
神马笔记实现在笔记中添加音乐。
二、实现代码
final String type = "audio/*";
final String[] mimeTypes = null;
boolean result = PackageUtils.pick(this.getActivity(), this,
type, mimeTypes,
documentOnly, c);
return result;
public static final boolean pick(Activity context, Fragment fragment,
String type, String[] mimeTypes,
boolean documentOnly, int requestCode) {
boolean result = false;
if (context == null && fragment == null) {
return false;
}
ArrayList<String> list = new ArrayList<>();
list.add(Intent.ACTION_OPEN_DOCUMENT);
list.add(Intent.ACTION_GET_CONTENT);
if (!documentOnly) {
list.add(0, Intent.ACTION_PICK);
}
for (String action : list) {
if (action.equalsIgnoreCase(Intent.ACTION_PICK)) {
if (mimeTypes != null && mimeTypes.length > 1) {
continue;
}
}
Intent intent = new Intent();
intent.setAction(action);
intent.setType(type);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.putExtra(Intent.EXTRA_LOCAL_ONLY, false);
if (mimeTypes != null && mimeTypes.length > 0) {
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
}
if (action.equalsIgnoreCase(Intent.ACTION_OPEN_DOCUMENT)
|| action.equalsIgnoreCase(Intent.ACTION_GET_CONTENT)) {
intent.addCategory(Intent.CATEGORY_OPENABLE);
}
try {
if (fragment != null) {
fragment.startActivityForResult(intent, requestCode);
} else {
context.startActivityForResult(intent, requestCode);
}
result = true;
break;
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
}
三、遇到的问题
调用第三方应用选择本地的音乐文件实现非常简单,但是也遇到不少问题。
问题 | 说明 |
---|---|
体验不一致 | 依赖于手机的第三方应用,无法实现一致的用户体验 |
Action支持不一致 | 坚果手机2和荣耀畅玩7不支持ACTION_PICK ,只能以ACTION_OPEN_DOCUMENT 方式调用第三方应用。红米6Pro则同时支持 ACTION_PICK 和ACTION_OPEN_DOCUMENT 。 |
ACTION_OPEN_DOCUMENT体验效果差 | 使用国内主流的音乐APP下载音乐,ACTION_OPEN_DOCUMENT并不能及时发现新下载的音乐,或者说音乐APP并没有通知系统刷新。 这样一来,用户必须导航到APP的音乐文件夹进行选择。 对于普通用户来讲,这将是一件极其困难的事情。 |
四、过程回顾
实现简单,体验欠佳,未来优化。
五、优化方案
在手机上下载音乐,或者通过音乐APP,或者浏览器、或者上传到音乐文件夹。
终归是几个有限的文件夹,将来考虑直接显示这些文件夹的内容以供用户选择。
并且保留ACTION_OPEN_DOCUMENT
提供给手机发烧友使用。
六、接下来
实现第三方播放音乐。
七、Finally
须菩提。于意云何。
可以身相见如来不。
不也。世尊。
不可以身相得见如来。
何以故。
如来所说身相。即非身相。
最后
以上就是柔弱画板为你收集整理的Android实现选择本地音乐的全部内容,希望文章能够帮你解决Android实现选择本地音乐所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复