Android开发本地及网络Mp3音乐播放器(十九)通知媒体库更新刚下载的MP3
2016-05-16 18:44
218 查看
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51427158
觉得博文有用,请点赞,请留言,请关注,谢谢!~
实现功能:
通知媒体库更新
纠结了几天,百度到一个方法,可以在安卓4.4,通知媒体库更新。
媒体库更新了,重新打开APP,就可以看到新的歌曲,但这样还是不完善。
后续将博文,将实现 下载音乐成功后,通更新媒体库后,更新本地音乐列表。
因为,没有自己的服务器,所以网络音乐所有相关功能(包含搜索音乐、下载音乐、下载歌词)均无法保证时效性,建议,尽快下载和练习;如果你下载时候,已经因为我采集的服务器更改规则,请给我留言,如果可以解决,我将在有空的时候献上新的源码。
截止到目前的源码下载: http://download.csdn.net/album/detail/3105 (最新的,请下载最后一个,本博文对应版本2.3;如果需要逐步实现的过程,请下载所有)
欢迎移动开发爱好者交流:我的微信是iwanghang
另外,我打算开始找工作,如果沈阳或周边城市公司有意,也请与我联系。
实现效果如图:
实现代码如下:
DownloadDialogFragment如下:
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51427158
欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
觉得博文有用,请点赞,请留言,请关注,谢谢!~
觉得博文有用,请点赞,请留言,请关注,谢谢!~
实现功能:
通知媒体库更新
纠结了几天,百度到一个方法,可以在安卓4.4,通知媒体库更新。
媒体库更新了,重新打开APP,就可以看到新的歌曲,但这样还是不完善。
后续将博文,将实现 下载音乐成功后,通更新媒体库后,更新本地音乐列表。
因为,没有自己的服务器,所以网络音乐所有相关功能(包含搜索音乐、下载音乐、下载歌词)均无法保证时效性,建议,尽快下载和练习;如果你下载时候,已经因为我采集的服务器更改规则,请给我留言,如果可以解决,我将在有空的时候献上新的源码。
截止到目前的源码下载: http://download.csdn.net/album/detail/3105 (最新的,请下载最后一个,本博文对应版本2.3;如果需要逐步实现的过程,请下载所有)
欢迎移动开发爱好者交流:我的微信是iwanghang
另外,我打算开始找工作,如果沈阳或周边城市公司有意,也请与我联系。
实现效果如图:
实现代码如下:
DownloadDialogFragment如下:
package com.iwanghang.drmplayer; import android.app.AlertDialog; import android.app.Dialog; import android.content.BroadcastReceiver; import android.content.Intent; import android.content.IntentFilter; import android.database.Cursor; import android.graphics.Path; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.Environment; import android.provider.MediaStore; import android.support.v4.app.DialogFragment; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Toast; import com.iwanghang.drmplayer.utils.Constant; import com.iwanghang.drmplayer.utils.DownloadUtils; import com.iwanghang.drmplayer.utils.MediaScanner; import com.iwanghang.drmplayer.utils.MediaUtils; import com.iwanghang.drmplayer.utils.SearchMusicUtils; import com.iwanghang.drmplayer.vo.SearchResult; import java.io.File; import java.io.IOException; import java.util.ArrayList; /** * Created by iwanghang on 16/5/3. * DownloadDialogFargment */ public class DownloadDialogFragment extends DialogFragment { private SearchResult searchResult;//当前要下载的歌曲对象 private MainActivity mainActivity; public static DownloadDialogFragment newInstance(SearchResult searchResult){ DownloadDialogFragment downloadDialogFragment = new DownloadDialogFragment(); downloadDialogFragment.searchResult = searchResult; return downloadDialogFragment; } private String[] items; @Override public void onAttach(Context context) { super.onAttach(context); mainActivity = (MainActivity) getActivity(); //items = new String[]{"下载","取消"}; items = new String[]{getString(R.string.download),getString(R.string.cancel)}; } //创建对话框的事件方法 @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final AlertDialog.Builder builder = new AlertDialog.Builder(mainActivity); builder.setCancelable(true);//返回键可以取消 builder.setItems(items,new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { switch (which) { case 0: //执行下载 downloadMusic(); break; case 1://取消 dialog.dismiss(); break; } } }); return builder.show(); } //下载音乐 private void downloadMusic() { Toast.makeText(mainActivity, "正在下载:" + searchResult.getMusicName(), Toast.LENGTH_LONG).show(); DownloadUtils.getsInstance().setListener(new DownloadUtils.OnDownloadListener() { @Override public void onDowload(String mp3Url) { //下载成功 Toast.makeText(mainActivity, "下载成功", Toast.LENGTH_SHORT).show(); System.out.println("DownloadDialogFragment.downloadMusic @ = " + Environment.getExternalStorageDirectory()+Constant.DIR_MUSIC + "/" + mp3Url); //更新媒体库 scanFile(mainActivity,Environment.getExternalStorageDirectory()+Constant.DIR_MUSIC + "/" + mp3Url); //更新 本地音乐列表 } @Override public void onFailed(String error) { //下载失败 Toast.makeText(mainActivity, error, Toast.LENGTH_SHORT).show(); } }).download(searchResult); } //更新媒体库 /** * 通知媒体库更新文件 * @param context * @param filePath 文件全路径 * * */ public void scanFile(Context context, String filePath) { Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); scanIntent.setData(Uri.fromFile(new File(filePath))); context.sendBroadcast(scanIntent); } }
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51427158
欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
觉得博文有用,请点赞,请留言,请关注,谢谢!~
相关文章推荐
- Android开发本地及网络Mp3音乐播放器(十九)通知媒体库更新刚下载的MP3
- 嵌入式linux的网络编程(2)--TCP Server程序设计
- android studio 2.0 Gradle HttpProxy 设置
- UNIX网络编程之管道与FIFO
- 关于启用 HTTPS 的一些经验分享(一)
- 五十五 网络编程 UDP编程
- HTTP请求报文和HTTP响应报文
- HTTP协议报文详解
- 五十四 网络编程 TCP编程
- 网络编程、三要素、Socket通信、UDP传输、TCP协议、服务端(二十五)
- 五十三 网络编程 TCP/IP简介
- tcp与udp
- centos7.2配置网络
- 编程过程中遇到的python问题与解决方法_来自网络
- 自媒体出路在哪里?2016你准备好了吗?
- iis 7 上传大文件 出现的 HTTP 404 问题
- 关于Http中的状态码总结
- tsung测试http的get和post方法配置
- CentOS 6.6下Redis安装配置记录__http://www.jb51.net/article/62507.htm
- 智能识别-人工神经网络FANN总结