**

网络音乐播放器

**
转载请指明博客网址
作者:WangYouHu我的主页网址
链接:https://www.jianshu.com/p/855659f266ae
著作权归作者所有,任何形式的转载都请联系本人获得授权并注明出处。
相信大家不想再去了解那些本地音乐的了 其实网络获取音乐也没有那么复杂 你只需要有一个自己uri所谓的网址 但必须只有音乐文件 没有其他的元素 这里我为了方便自己搭建了一个服务器 直接从我服务器获取音乐软件 现在网络音乐播放大部分都是用户指明歌名来播放

下面给大家看一下我的工程文件夹 我使用了主线程和service服务两种方法来实现音乐播放 后台服务可以优化运行稳定性 首先我先来讲一下在线程中实现网络音乐播放器

首先看我的布局文件 是很简单的布局 主要是给一部分人讲思路 如果想实现音乐列表可以自己加一个listView 我这里主要指定了一个网络上的音乐 uri地址为http://120.78.188.33/wp-content/uploads/2018/07/楼沁-痴情玫瑰花-女声版-1.mp3

这是我自己的服务器地址 我的服务器我不一定随时开启 大家可以根据情况找地址

xml文件中加入了三个图片按钮 播放 暂停 停止


这里公布了MidiaPlayer的结构流程 顺便补充一下 不仅可以视频音乐播放 还可以流的播放 在API26即安卓8.0以后加了传输加密的工具 具体看官网谷歌官网MediaPlayer简介

由于我设备谷歌翻墙 这个链接可能不能访问 建议谷歌翻墙

然后看一下布局关联的java文件 声明三个按钮和MediaPlayer媒体播放器 媒体播放器可以播放音乐和视频 这里用到了音乐

声明网址 这里为公开的 如果不想公开可以设置成private 但其他类就不可以访问了 根据情况而定

下面是activity生命周期销毁的方法

如果播放器正在运行和播放器正在播放 停止播放器 主要是为了用户关闭你的软件优化内存

然后适当你占用系统播放器的资源 初始化你的播放器

继承销毁方法的所有类和属性

只有本方法可以访问到活动生命周期的创建周期

绑定ui控件id 也可以写一个方法用来单独存储绑定控件id


实现按钮监听 判断媒体播放器是否存在 如果不存在调用ready方法 这个方法下面会写到

点击播放按钮启动播放器

暂停按钮监听

当播放器存在和正在播放调用播放器的暂停方法

停止按钮监听

当播放器不为空和播放器正在运行

播放器停止运行 由于播放器只能播放一次音乐 所以需要释放资源 release


然后初始化 要不然播放器一直占用资源无法点击停止按钮后点击播放按钮 如果不写这两句会出现不能重新播放

下面写的是准备ready方法 这是我自己写的 然后在其他地方调用这个方法 用来避免代码的繁琐

准备工作是创建媒体播放器 如果媒体播放器不存在 创建媒体播放器

尝试媒体播放器设置数据资源 上下文本文 uri 解析开始声明的uri 这里到了初始化状态还不能播放

媒体播放器准备 当准备了就可以播放了

如果想有个音乐列表自己添加listView设置适配器 到这里就讲完了主线程实现音乐播放了 是不是特别简单


下面来讲述使用服务service实现音乐播放

布局文件同样是这个 我绑定了同一个布局

然后直接来看我的服务类的解析

这个类继承了服务的所有属性和方法

声明媒体播放器声明operatorReceiver操作寄存器 操作寄存器用来接受主界面ui的返回

同样声明uri网址 uri可以指明网址 也可以指明一些手机内部存储数据库地址

同样的与主线程方法一样实现软件销毁进程的方法 然后不管哪种情况都关闭registerReceiver寄存接收器 寄存接收器是用来放操作接收器获得的数据 用户销毁软件进程就不需要操作接受了 可以销毁


继承属性

活动的创建方法实现 每个活动都必须实现创建方法 否则会出错

初始化操作接收器

设置信使过滤器 指明action

把操作接收器获得的数据放到寄存接收器里 操作接收器的名字 和action

初始化媒体播放器

绑定方法 这里我没用到

下面写预测开始暂停停止的方法 调用开始暂停停止方法

同样 停止播放后重新准备一下 用来让用户停止后可以继续点击播放

服务的开始命令方法 同样调用一个准备工作

这里指明了准备方法的内容 这个准备方法不可以生成 是我自己写的方法

每次准备重启一下媒体播放器 reset重启

尝试

首先设置媒体播放器数据资源data Source 同样初始状态不可以播放

媒体播放器准备 写到这一步就可以播放音乐了

然后写了一个class用来继承广播接收器

实现接受方法

设置一个数组 命名 信使得到的额外数据 名字 默认值-1因为不可能为-1

开关名字cmd

按键Tools类中的按钮play调用开始音乐方法

来看一下我的tools类 这里把按钮点击三个转换成了数字

最后别忘了在功能清单中声明网络权限和注册service
到这里两个方法就都讲完了 首先这里讲一下由于所有的代码都是自己写的思路 如果有哪里做的不好请指出 我会尽力为大家分享安卓开发的知识 有时间我会公布我的音乐列表播放和实现上下曲功能 同时读取音乐时间和艺人 而且我会讲述本人对官网的理解 相信大家一看到谷歌官网就头大 写的太乱 随后我会发表简书给大家分享经验

现在到了给小编点小心心的时候了 小编编写这又得不到好处 只希望你点个小心心 哈哈

作者:WangYouHu
链接:https://www.jianshu.com/p/855659f266ae
來源:博客
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
注 本人博客和简书逐渐同步 也会更新一些新的论文来供大家参考 由于需要实习的原因 可能更新速度会很慢
我明白自己和那些高级博客差距很大 但我写的都是基础 基础学好了才可以让大家更好的学习 注解写的很好
这些都是平时常见的代码 由于本人学习方向是前端 有错的地方请大家多多提出 这也是第一次在博客上写论文
本来都是在简书上写论文 就把原文抄了过来 后续会更新一个机器人聊天的软件 供大家学习

android网络音乐播放器相关推荐

  1. android音乐播放器简书,打造 Android 网络音乐播放器 [2]

    前言 在上一篇中,我们把播放器的基本播放功能实现了,今天我们就把基本的界面实现以下吧. 目标 界面的话没打算实现太复杂的,就做现在比较流行的 Drawer+Tab+ViewPager 这种界面.下面给 ...

  2. android 收藏歌曲功能,基于android的网络音乐播放器-回调实现音乐播放及音乐收藏的实现(三)...

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  3. 基于android的网络音乐播放器-播放音乐及收藏音乐的效果展示(四)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  4. 基于android的网络音乐播放器-回调实现音乐播放及音乐收藏的实现(三)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  5. 基于android的网络音乐播放器-添加viewpager和fragment实现滑动切换多个界面(二)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  6. 基于android的网络音乐播放器-网络音乐的搜索和展示(五)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  7. 基于android的网络音乐播放器-下载完成后下拉音乐列表刷新(八)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  8. 基于android的网络音乐播放器-网络音乐的多线程下载(六)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  9. 三款Android平台音乐播放器多方位对比

    音乐播放器作为重要的娱乐工具,在PC端异常重要,在移动端同样如此.移动端的音乐播放器很多,巨头们纷纷在这个领域布局,腾讯百度等均拥有各自的移动端音乐播放器.爱好音乐的机友们也面临较多的选择. 小编在这 ...

最新文章

  1. 面试常考--socket常见错误
  2. 释疑の作业分割的理解
  3. NSTimer定时器进阶——详细介绍,循环引用分析与解决
  4. python安装哪个版本好啊_windows10安装哪个版本的Python?
  5. amazeui学习笔记二(进阶开发4)--JavaScript规范Rules
  6. C#关于base64图片字符串的压缩方法
  7. 最长递增子序列 动态规划
  8. 武汉科技大学ACM:1006: 我是老大
  9. 这是一款仅针对「中国网民」的勒索软件(含源码下载)
  10. xlsx文件损坏修复工具_野猫软件榜之文件修复工具
  11. html5语音读取文字_微信语音转发给别人播放不了怎么办?该怎么转发?
  12. 立即执行的js插件,转成可以在VUE环境下使用,
  13. #define s(x) x*x 的计算方法
  14. Aimersoft iMusic for mac(音乐下载传输工具)
  15. kali Linux 常用软件
  16. 机器学习模型常用性能指标和Python代码实现
  17. 什么是soft wrap,什么是IDEA的soft wrap,如何设置IDEA默认所有类型的文件都自动换行(如何设置用IDEA打开markdown文件不自动换行)
  18. 射频开关常见优化技术——深N阱MOS设计
  19. vue中引入jquery方法 或 $ is not defined错误解决方法
  20. 7-1 给出成绩等级 (6 分)编写一程序实现以下功能从键盘输入一个一百分制成绩,如果不在0~100范围内,则要求重新输入数据,直到输入的数据在0~100范围内。将输入的数据转换成等级‘A’

热门文章

  1. 手机装linux无root权限,linux无root权限安装screen(示例代码)
  2. 摩托车挡板防碎膜-安全骑行好伴侣
  3. 安装Office 2016时报错Office 16 Click-to-Run Extensibility Component的处理办法
  4. java 子类克隆_Java 浅克隆、深克隆
  5. android8.0技术体系,安卓8.0剧透汇总:这样简洁流畅的系统,连iOS都怕了!
  6. 使用print.js进行分页打印
  7. sakimichan网页版_PS笔刷推荐:光系、烟雾、铅笔、炭刷、油漆、涂鸦
  8. Subscriber class .NewsFragment and its super classes have no public methods
  9. 统计学:离散型和连续型随机变量的概率分布
  10. Android self_adaption of screen