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

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值