APP开发流程实例讲解-儒释道网络电台八天开发全程

项目发起

APP开发流程实例讲解-儒释道网络电台八天开发全程

  1. 项目发起
  2. 功能和界面初步设定
  3. 在Android Studio中完成界面设计
  4. 实现功能代码:播放控制
  5. 优化排错:增强稳定性和添加异常处理
  6. 界面美化并进一步优化排错
  7. 百度云深度兼容测试并进一步优化排错
  8. 签名发布

起因

浏览净空法师网站时,看到有一个”儒释道网络电台“,可惜没有相应的APP,不能在手机上观看。正巧最近在研究安卓应用开发,于是就想做这样一个APP。一者可弘法利生,再者可增长技艺,何乐而不为。

可行性探究

通过查看网页的源码,发现它提供两种流播放式:RTMP和HTML5 。在APP里播放RTMP流还需要Flash Player,那可是个费电的东西。看来只能使用HTM5格式的流了。

HTML5格式的流地址如下:

视频流:http://bj2.hwadzan.net:1935/liveedgelist/_definst_/livetv/playlist.m3u8
音频流:http://bj2.hwadzan.net:1935/liveedgelist/_definst_/livetvaudio/playlist.m3u8

打开我的VLC播放器,可以成功播放。看来这个项目是可以做的。

资料查询并尝试

那么我如果要做Android APP难道要做一个HTML5 APP吗?Android是否支持直接播放m3u8的流呢。上网查了一下,说是高版本的Android是支持的,到底支持情况如何呢?在官网查的媒体支持情况说明网址:https://developer.android.com/guide/appendix/media-formats.html ,在这个上面只说了支持的编码。我以前搞过一段RED5的研究,知道RTMP流其实是H.264编码,我估计应该是H.264编码,这个编码只要Android 3.0+就有了。那么上面的m3u8是什么编码的,是否支持呢?看来只能试一下了。

新建项目,关键代码如下:

public void onClick(View view) {
<pre style="background-color:#ffffff;color:#000000;font-family:'DejaVu Sans Mono';font-size:9.0pt;">                String <span style="color:#660e7a;font-weight:bold;">mp3 </span>= <span style="color:#008000;font-weight:bold;">"http://bj2.hwadzan.net:1935/liveedgelist/_definst_/livetvaudio/playlist.m3u8"</span>;

Uri uri = Uri.parse(mp3); mediaPlayer = new MediaPlayer(); mediaPlayer.reset(); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { mediaPlayer.start(); } }); mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mediaPlayer, int i, int i1) { Toast.makeText(MainActivity.this, "出错", Toast.LENGTH_SHORT).show(); return false; } }); try { //mediaPlayer.setDataSource("http://mms.3bu.com/ring/ring/200808151615132.mp3");//OK mediaPlayer.setDataSource(MainActivity.this, uri); mediaPlayer.prepareAsync(); } catch (IOException e) { e.printStackTrace(); } } 上面的代码很简单,看起来很正常,但是第一次运行报错了!!什么原因,原来没加权限 ,在AndroidManifest.xml中加网络访问权限

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

运行还出错!!什么原因,原来我的手机WIFI没开

终于听到声音了,成功!

前一段时间我做过一个音乐播放器的例子。这个应该比那例子还简单。不过要做一个完整的APP,我的经验是,没有简单的。因为要做一个完整的APP,需要考虑的问题并不仅仅是实现功能,而是还需要考虑许多必须要考虑的内容。比如:功能的取舍,用户体验的老师,界面的美化,当然也包括所有代码的设计和实现,还包括整个APP开发过程中所产生的各种想法和走的弯路,哈。

决定发起项目

于是我产生了将我制作《儒释道网络电台》APP的全过程详细的记录下来的冲动,想将一个APP产生的全过程完整的展现出来,做为我个人最近学习的一个总结。

初步计划在一周内完工,每天工作两个小时,并发布一篇博客文章。七天的工作内容初步设定如下:

第一天:功能和界面初步设计完成

第二天:在Android Studio中完成界面设计

第三天:完成播放控制,使用service来进行播放,使用通知

第四天:其它数据的获取和显示

第五天:界面美化,及优化

第六天:调试

第七天:微调优化后发布

所有源代码在CSDN的GIT上同步更新。
源码地址 https://code.csdn.net/do168/buddhismnetworkradio

APP开发流程实例讲解-儒释道网络电台八天开发全程-项目发起相关推荐

  1. APP开发流程实例讲解-儒释道网络电台八天开发全程-百度云深度兼容测试并进一步优化排错

    APP开发流程实例讲解-儒释道网络电台八天开发全程之 百度云深度兼容测试并进一步优化排错 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studi ...

  2. APP开发流程实例讲解-儒释道网络电台八天开发全程-功能和界面初步设定

    APP开发流程实例讲解-儒释道网络电台八天开发全程 能和界面初步设定 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设计 实 ...

  3. APP开发流程实例讲解-儒释道网络电台八天开发全程-实现功能代码:播放控制

    APP开发流程实例讲解-儒释道网络电台八天开发全程 实现功能代码:播放控制 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设 ...

  4. APP开发流程实例讲解-儒释道网络电台八天开发全程-在Android Studio中完成界面设计

    APP开发流程实例讲解-儒释道网络电台八天开发全程 功能和界面初步设定 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设计 ...

  5. APP开发流程实例讲解-儒释道网络电台八天开发全程-签名发布

    APP开发流程实例讲解-儒释道网络电台八天开发全程 签名发布 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设计 实现功能代 ...

  6. Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发

    Android NDK开发之旅(2):一篇文章搞定android Studio中使用CMake进行NDK/JNI开发 (码字不易,转载请声明出处:http://blog.csdn.NET/andrex ...

  7. Android开发——Android Studio中配置及使用OpenCV示例

    from: http://www.mobile-open.com/2015/86176.html 本文主要讲述了Android Studio中配置及使用OpenCV示例,现在整理出来分享给Androi ...

  8. Android Studio中的手机通讯录开发

    Android Studio中的手机通讯录,包含功能(按首字母排序,动态添加) 第一次写博客,也刚踏入工作,想着把自己在项目中遇到的问题,以及自己在工作中所做的项目记录下来,方便以后自己查找知识,一开 ...

  9. Android Studio中app出现红叉的解决方案

    Android Studio中app出现红叉的解决方案 如果你在网上搜索了一大圈之后发现还是没有解决你的问题,或许这篇文章能帮到你,同事的开发环境中遇到了,处理了一下午,期间包括删除工具,重装sdk等 ...

最新文章

  1. 设计-直接不等于简单
  2. 飞行熊猫游戏源码android版
  3. 简单灵活的 PHP页面跳转函数
  4. python正则表达式--分组、后向引用、前(后)向断言
  5. .NET Core 3.0 的新改进:针对分布式应用程序的故障诊断和监控
  6. html 转换为cshtml,使用Html而不是csHtml
  7. Linux的实际操作:权限管理(chmod)
  8. Beginning iCloud in iOS 5 Tutorial Part 2(转载)
  9. linux container框架,理解和配置LinuxContainerExecutor
  10. Docker学习六:综合实践
  11. Delphi单元文件基本结构
  12. 个人收集的一些库、工具、技术介绍
  13. 用计算机画 信息技术课标要求,[引用]小学信息技术课程标准
  14. 因服务器配置不当,热门直播平台 Twitch 的125GB 数据和源代码被泄露
  15. java给mongo数组添加_如何使用具有新值的java在mongodb中的现有集合中追加现有数组...
  16. 在线的Sql格式化工具
  17. ADI为何对MEMS传感器一往情深?
  18. PdShell16扫描内容不符合数据库规范整合
  19. Wilcoxon秩和检验
  20. python学习笔记--缓解眼睛疲劳的小工具

热门文章

  1. 利用Flutter写一个跨平台的果核APP(0)——介绍
  2. 拼多多重大bug,一夜损失200亿,程序员面对老板是跑路还是留下?
  3. 2023年最新,Win11+Tensorflow+CUDA部署,用显卡加速训练模型
  4. 德国码农开发抢厕纸神器,再也不用愁了
  5. 马院士抠成精!推特全面断供厕纸,办公室和走廊臭气熏天
  6. iTOP4412开发板烧写命令集汇总
  7. 网络协议学习笔记 · 19
  8. 对于过去完成时的一点理解
  9. nginx sendfile 参数解释
  10. 环洋分析报告-2021年全球无糖饼干和饼干行业调研及趋势分析报告