关于j2me mmapi的player接口的一些理解.
来源:互联网 发布:windows文件上传linux 编辑:程序博客网 时间:2024/05/20 08:41
大多时候使用的player接口的时候,都是先声明player,然后用manager来createplayer,然后通过用player接口的start和stop来控制.当然这个是最简单的控制.但是其实真正的状态转化比这个还是要复杂那么一点点的.特别是在一些声音有问题的设备,了解状态的转化能够对排除问题和了解机器的bug有一定的帮助,特别是在移植的时候经常会碰的声音的问题的.
一个player总共有5个状态,可以说player的状态就是这之间互相转化的.
这五个状态分别是:
unrealized(没有实现), realized(实现), prefetched(缓冲读取), started(播放状态), closed(关闭状态).
首先声明一个player后,这个player的状态首先是unrealized(没有实现)状态,一般情况下这个时候会先用createplayer创建这个player,然后使用realize()方法将这个player的状态转化为realized(实现).
这个时候其实已经可以播放了,但是这个时候播放的话,在播放刚启动的时候或多或少会出现的问题就是刚开始的时候会卡一下(读取音乐资源的io操作的后果),因此这个时候最好能够让player进入prefetched(缓冲读取)的状态,这样无论在什么时候播放的话,中间的卡的停顿感就会消失.
这样的话,可以说一个player在播放之前已经准备完毕了.这个时候就能够随时播放了(或者说随时可以进入started(播放状态)了),这时候随时播放任何邪恶的触手的声音都没有问题.-_-特别是一些特殊的游戏对音效和音乐要求的播放时间的精准度比较高的,最好都要prefetched(缓冲读取)的状态比较好.
还有就是所谓的stop的使用,其实是返回prefetched(缓冲读取)的状态,因此并没有所谓的stopped的状态(这个名词的确念起来很顺口).一般如果播放完毕后会自动回到prefetched(缓冲读取)的状态.
关于关闭方面其实我想说的是,很多人关闭音乐都要有一个所谓的顺序之类的,其实没有必要,无论处于怎样的状态(除了closed本身),只要运行close()就能够直接返回closed状态的.其他的很多行为本身是不需要的,不过返回了closed状态本身就是相当于这个player已经关闭了.不能再进行任何别的使用操作了.如果还需要的话,重新创建一个吧.
可能这样说有点笼统,也许划线的话更好理解就是了
unrealized(没有实现)----->realized(实现)----->prefetched(缓冲读取)----->started(播放状态)
realize() prefetch() start()
started(播放状态)----->prefetched(缓冲读取)-----realized(实现)----->unrealized(没有实现)
stop() deallocate()
以上4个状态随时都可以用close()返回到closed状态.
- 关于j2me mmapi的player接口的一些理解.
- j2me-player接口的初始化
- 关于MMAPI的学习
- 关于player的一些东西
- J2ME中MMAPI(JSR135)包的使用
- 手机上用J2ME的MMAPI播放视频
- 求助:j2me中mmapi播放网络视频的问题...
- J2ME可选包MMAPI一些使用
- 关于一些J2ME的有用的网址
- 关于接口的理解。
- 关于《接口》的理解
- 关于“接口”的理解
- 关于接口的理解
- 关于接口的理解
- 关于蓝牙(J2ME)的一些分享
- 关于WEB使用media player的一些说明
- 关于接口我的理解
- 【引】关于接口的理解
- Google Latitude 能否成为所有移动社会网络的杀手?
- Web开发电子期刊2009年第2期(总第30期)
- 给初学者一点建议:学习设计之前
- 程序源代码字符搜索
- C# 实现调用 SAP Com组件
- 关于j2me mmapi的player接口的一些理解.
- 用 Java ME 进行无线消息传递
- jQuery之$.getJSON使用
- Java面试题
- 恐惧,来自于内心
- 一些图像处理算法
- 手机游戏开发综述
- j2me实现收发短信
- java内存的思考与总结