APP开发流程实例讲解-儒释道网络电台八天开发全程-项目发起
APP开发流程实例讲解-儒释道网络电台八天开发全程
项目发起
APP开发流程实例讲解-儒释道网络电台八天开发全程
- 项目发起
- 功能和界面初步设定
- 在Android Studio中完成界面设计
- 实现功能代码:播放控制
- 优化排错:增强稳定性和添加异常处理
- 界面美化并进一步优化排错
- 百度云深度兼容测试并进一步优化排错
- 签名发布
起因
浏览净空法师网站时,看到有一个”儒释道网络电台“,可惜没有相应的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开发流程实例讲解-儒释道网络电台八天开发全程-项目发起相关推荐
- APP开发流程实例讲解-儒释道网络电台八天开发全程-百度云深度兼容测试并进一步优化排错
APP开发流程实例讲解-儒释道网络电台八天开发全程之 百度云深度兼容测试并进一步优化排错 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studi ...
- APP开发流程实例讲解-儒释道网络电台八天开发全程-功能和界面初步设定
APP开发流程实例讲解-儒释道网络电台八天开发全程 能和界面初步设定 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设计 实 ...
- APP开发流程实例讲解-儒释道网络电台八天开发全程-实现功能代码:播放控制
APP开发流程实例讲解-儒释道网络电台八天开发全程 实现功能代码:播放控制 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设 ...
- APP开发流程实例讲解-儒释道网络电台八天开发全程-在Android Studio中完成界面设计
APP开发流程实例讲解-儒释道网络电台八天开发全程 功能和界面初步设定 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设计 ...
- APP开发流程实例讲解-儒释道网络电台八天开发全程-签名发布
APP开发流程实例讲解-儒释道网络电台八天开发全程 签名发布 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设计 实现功能代 ...
- Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
Android NDK开发之旅(2):一篇文章搞定android Studio中使用CMake进行NDK/JNI开发 (码字不易,转载请声明出处:http://blog.csdn.NET/andrex ...
- Android开发——Android Studio中配置及使用OpenCV示例
from: http://www.mobile-open.com/2015/86176.html 本文主要讲述了Android Studio中配置及使用OpenCV示例,现在整理出来分享给Androi ...
- Android Studio中的手机通讯录开发
Android Studio中的手机通讯录,包含功能(按首字母排序,动态添加) 第一次写博客,也刚踏入工作,想着把自己在项目中遇到的问题,以及自己在工作中所做的项目记录下来,方便以后自己查找知识,一开 ...
- Android Studio中app出现红叉的解决方案
Android Studio中app出现红叉的解决方案 如果你在网上搜索了一大圈之后发现还是没有解决你的问题,或许这篇文章能帮到你,同事的开发环境中遇到了,处理了一下午,期间包括删除工具,重装sdk等 ...
最新文章
- 设计-直接不等于简单
- 飞行熊猫游戏源码android版
- 简单灵活的 PHP页面跳转函数
- python正则表达式--分组、后向引用、前(后)向断言
- .NET Core 3.0 的新改进:针对分布式应用程序的故障诊断和监控
- html 转换为cshtml,使用Html而不是csHtml
- Linux的实际操作:权限管理(chmod)
- Beginning iCloud in iOS 5 Tutorial Part 2(转载)
- linux container框架,理解和配置LinuxContainerExecutor
- Docker学习六:综合实践
- Delphi单元文件基本结构
- 个人收集的一些库、工具、技术介绍
- 用计算机画 信息技术课标要求,[引用]小学信息技术课程标准
- 因服务器配置不当,热门直播平台 Twitch 的125GB 数据和源代码被泄露
- java给mongo数组添加_如何使用具有新值的java在mongodb中的现有集合中追加现有数组...
- 在线的Sql格式化工具
- ADI为何对MEMS传感器一往情深?
- PdShell16扫描内容不符合数据库规范整合
- Wilcoxon秩和检验
- python学习笔记--缓解眼睛疲劳的小工具