首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

S40大文件流创建Player有关问题

2012-09-16 
S40大文件流创建Player问题????? 我们在开发流媒体播放器的时候,可能会遇到这样子的问题,如:打开大文件(一

S40大文件流创建Player问题

????? 我们在开发流媒体播放器的时候,可能会遇到这样子的问题,如:打开大文件(一般大于700k)将其转化为流,再使用其流创建player的时候,在s40这样子的机子上面会报OutOfMemory。

????? 解决办法:

????? (一):分段读取

????? 将大文件分成小段读取,然后用小段文件来创建。

?/**
???? * 获取部分本地歌曲文件
???? * @return byte[]
???? */
??? private synchronized byte[] getPartBytes() {
??????? try {
??????????? if (dis == null) {
??????????????? return null;
??????????? }
??????????? int bufferLength = PER_READ_LOCAL_LENGTH;
??????????? if (totalSize < offset + PER_READ_LOCAL_LENGTH) {
??????????????? bufferLength = (int) (totalSize - offset);
??????????? }
??????????? byte[] buffer = new byte[bufferLength];
??????????? try {
//??????????????????? dis.skip(offset);
??????????????? //自己写的skip(),系统提供的效率太低
//??????????????????? skip(dis, offset);
??????????????? int p = dis.read(buffer, 0, bufferLength);
??????????????? if (p != -1) {
??????????????????? offset += p;
??????????????? }
??????????? } catch (IOException ex) {
??????????? }
??????????? return buffer;
??????? } catch (Exception ex1) {
??????????? return null;
??????? } finally {
??????????? if (offset >= totalSize) {
??????????????? try {
??????????????????? if (dis != null) {
??????????????????????? dis.close();
??????????????????? }
??????????????????? fs.close();
??????????????? } catch (IOException ex2) {
??????????????? }
??????????? }
??????? }
??? }

(二),在jad中增加标识也可以解决,但是也会存在一些问题。

修改jad:
Nokia:
progressive_download: enabled
Sony:
progressive_download: enable

相关文章,可以参考:

官方:

http://wiki.forum.nokia.com/index.php/KIJ000449_-_Playing_large_audio_files_by_using_InputStream_throws_an_OutOfMemoryError

?

Nokia论坛:

http://discussion.forum.nokia.com/forum/showthread.php?t=95500

热点排行