问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能提供一个android应用程序的框架,涉及到网络和线程更改UI的

发布网友 发布时间:2022-04-26 06:57

我来回答

2个回答

热心网友 时间:2022-06-25 00:03

Android的多媒体框架包括支持播放多种常见的媒体类型,使您可以轻松地把音频、视频和图像集成到你的应用。你可以播放音频或视频媒体文件,这些文件是存储在你的应用程序的资源文件中的。应用程序的资源文件可以是文件系统中独立的文件,或通过网络连接获取的一个数据流,所有使用MediaPlayer APIS的资源文件。
1.

注意:如果你通过一个URL来获取一个在线媒体文件,该文件必须能够支持渐进式下载。
2.
警告:当你使用setDataSource()方法时,必须捕捉或通过非法数据异常和输入输出异常,因为正在被你引用的文件可能不存在在.
3.
异步准备 - Asynchronous Preparation
使用MediaPlayer 的原则很简单。然而,重要的是要记住,有必要将更多的一些东西正确地集成到一个典型的Android应用程序。比如,调用prepare()方法可能需要较长的时间来执行,因为它可能涉及获取和解码媒体数据。因此,如同任何方法,可能需要很长时间执行,你不应该从应用程序的UI线程调用它。这样做将导致UI挂到方法返回,这是一个非常糟糕的用户体验,也可能会引起应用程序没有响应的错误。 即使你预期你的资源能快速加载,记住,任何超过十分之一秒的反应在界面上会造成明显的停顿,将导致给用户的印象是:你的应用程序是缓慢的。
为了避免你的UI线程挂起,产生另一个线程准备MediaPlayer 当完成时通知主线程。你可以写自己的线程的逻辑,框架提供prepareAsync() 方法,方便的使用MediaPlayer 。该方法在后台开始准备媒体并立即返回。当媒体准备好了,MediaPlayer.OnPreparedListener的onPrepared 方法,通过配置setonpreparedlistener()方法来调用。
4.

状态管理 - Managing State
关于MediaPlayer ,你需要记住的另一点是它的状态。即,在你编写自己的代码的时候,必须时刻意识到MediaPlayer 有一个内部状态,因为 只有当玩家在特定状态,某些特定的操作才会有效。如果您在错误的状态执行一个操作,系统可能会抛出一个异常或引起其它令人不快的行为。
MediaPlayer 类里有文件显示一个完整的状态转换图,阐明哪些方法可以把MediaPlayer 从一个状态改变到另一个状态。例如,当您创建一个新的MediaPlayer ,它就处于闲置状态。这时,你应该调用android.net.Uri) setDataSource()方法来初始化它,把它设置为初始化状态。然后,你必须使用prepare()方法或prepareAsync()方法。当MediaPlayer 准备好了,它将进入准备状态,这就意味着你可以调用start()方法来播放媒体。另外,在状态转换图上阐明了,你可以调用start(),pause()和 seekTo()这些方法在Started,Paused和PlaybackCompleted状态之间进行转换。如果您调用stop()方法,这时请注意,你需要再次准备MediaPlayer ,才可以再一次调用start()方法。
在编写代码与MediaPlayer 对象交互时,心里要随时想着状态转换图,因为从错误的状态调用它的方法,是引起错误的常见原因。
释放MediaPlayer-Releasing the MediaPlayer
MediaPlayer 会消耗宝贵的系统资源。因此 ,你应该经常采取额外的预防措施来确保及时把不需要的MediaPlayer 取消掉。您需要调用release() 方法来确保系统分配给它的资源正确释放。例如,您正在使用MediaPlayer ,同时,你的活动调用onStop()方法,这时你必须释放MediaPlayer,因为你的活动并非与用户交互,留着它没什么意义(除非你是在后台播放多媒体,这是下一节中将讨论的内容)。当你的活动恢复或者重新启动,恢复播放之前,您需要创建一个新的MediaPlayer并且重新准备。
下面是释放和取消你的MediaPlayer的方法:
mediaPlayer.release(); mediaPlayer = null;

作为思考题,考虑一下如果当活动停止的时候你忘了释放MediaPlayer,活动重启后新建一个MediaPlayer,可能会发生的问题。正如你可能知道的,当用户更改屏幕的方向(或以另一种方式更改设备配置),该系统通过重启活动处理(通过默认方式),所以当用户频繁在纵向和横向之间切换时,你可能会很快消耗掉所有的系统资源,原因是你没有释放方向变化时各个方向上创建的新MediaPlayer。(更多关于运行时重启的资料,请查看Handling Runtime Changes)。
你可能会想知道在用户离开活动时后台继续播放媒体是如何实现的,采用同样的方式实现的,如内置的音乐应用程序的行为。在这种情况下,你需要通过一个Service来控制MediaPlayer,所以我们开始学习Using a Service with MediaPlayer。

热心网友 时间:2022-06-25 00:03

eoeandroid上面找去!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
时光公主高性价比氪金项目一览介绍_时光公主高性价比氪金项目一览是什么... 时光公主氪金买什么好介绍_时光公主氪金买什么好是什么 时光公主氪金买什么好 氪金钻石消费攻略 ch61u可以用gtx960显卡吗? 为什么路由器和机顶盒变成黄色网络连接不上 索尼WH-1000XM3耳机怎么通过蓝牙连接 索尼WH-1000XM3蓝牙连接手机教程... 葫芦岛市行政执法投诉办法第一章 总则 葫芦岛市价格调节基金管理办法第一章 总则 葫芦岛市政府信息公开暂行规定第一章 总则 葫芦岛市人民政府制发规范性文件规定第一章总则 android便签项目界面UI设计框架 为什么 Android 的 UI 框架使用单线程模型,比多线程模型有什么优点 android ui 框架怎么使用 开发android app,会用到哪些开源框架 春天了,养个什么花有意义呢? 想在庭院种一些盆景树,哪些盆景树种更容易照顾呢? 室内种植什么好 家里种什么花比较好,既能净化空气,又能养眼! 请问澳洲杉生产产地在哪里?地点越详细越好. 澳洲松盆景象征什么,送人代表什么意思。 澳洲杉盆景什么意思 准备去云南旅游,想去报团,不知道哪个旅行社要实惠和好一点 想去云南旅游,大家给我推荐一个旅行社? 最近想去云南旅游不知道那个旅行社好 近期想去云南旅游,问了很多旅行社,说法不一,求帮忙,推荐旅行社 我想去云南旅行请问云南那边哪家旅行社好啊? 去云南旅游选哪家旅行社好? 云南有哪些比较正规的旅行社 最近想去云南旅游,云南有那些好的旅行社,大家可以给我推荐一下吗? 去云南旅游报哪个旅行社好 移动webapp前端ui用哪个框架好? android 怎么使用ui库 找对象,陌陌和探探哪个最好找对象? 大众gps定位怎么用 Lexar雷克沙nCARD存储具体支持华为哪几款型号的扩容? polo美白丸可以跟胶原蛋白一起吃吗 lumi美白丸和胶原蛋白粉哪个好,本人肤色暗黄无光泽。 财务移交应该注意什么? 吃过日本Brighten美白丸的宝宝,它补胶原蛋白效果怎样?比Pola好吗? 会计工作交接时应该注意哪些问题 是日本的美白丸好?还是胶原蛋白美白祛斑效果好 业务从一个单位转移到另一个单位,会计交接注意事项是什么 皮肤黑 可不可以一边吃美白丸 维生素c 维生素e 胶原蛋白粉 年龄17 可以吃吗 因为美白护肤品白不起来 会计交接需要注意些什么? 日本的胶原蛋白,酵素,美白丸卖的这么火 真的有用吗 会计工作交接应注意什么? 会计交接工作需要注意什么问题 刚打完胎能吃美白丸吗、胶原蛋白粉吗?急有专家可以解说下吗 会计交接需要注意什么? 【挑战10天白美人】针叶樱桃胶原蛋白肽抗皱纹可搭美白片VE美白丸有副作用吗?