本文介绍如何使用JavaME在SonyEricssonJava平台6或者更新的电话上,例如W550,W900等,以流形式播放Web服务器上的音乐文件。当然,音乐文件可以使用实时流媒体协议播放,但是这里使用的是输入流。本文引用地址:http://www.eepw.com.cn/article/149134.htm

首先,我们需要和服务器端的音乐文件建立流连接,然后把音乐文件存储在在手机的文件系统上。由于JP6平台的电话支持渐进播放音乐文件,因此我们不必等到所有文件都下载完成后才开始播放。

有两方面的问题需要我们考虑好:

1)下载的速度,程序需要建立一个缓冲区。

2)媒体时间,程序需要跟踪媒体时间,如果下载的速度比媒体播放速度慢,当播放器到达文件终点的时候,我们需要重新创建一个缓冲区然后设置正确的媒体时间开始播放。

下面的程序可以在电话的文件系统上创建一个文件并打开输出流。

fConn=(FileConnection)Connector.open(file:///c:/other/mymusic.mp3);

fConn.create();

outputStream=fConn.openOutputStream();

接下来把从输入流的数据写入到输出流中。

HttpConnectionconn=(HttpConnection)Connector.open(url);

InputStreamis=conn.openInputStream();

intchunkSize=512;

byte[]data=newbyte[chunkSize];

intlength=0;

do{

length=is.read(data,0,chunkSize);

progress+=length;

if(length!=-1){

outputStream.write(data,0,length);

}

}while(length!=-1);

当下载的缓冲区就绪之后,我们就可以播放文件了。

finalStringfile=file:///c:/other/mymusic.mp3;

player=Manager.createPlayer(file);

player.addPlayerListener(this);

player.realize();

player.setMediaTime(startTime);

记得记录媒体时间,当我们重新播放音乐的时候用得着。

Player应该实现PlayerListener接口,这样可以跟踪媒体的播放状态,如下所示:

publicvoidplayerUpdate(javax.microedition.media.Playerplayer,Stringstr,Objectobj){

if(str==PlayerListener.END_OF_MEDIA){

playerBufferAdd();

player.close();

}

}

在playerUpdate()方法中我们跟踪是否播放器到达了文件的终点,如果是的话,创建一个新的缓冲区和新的播放器,把前面的播放器关闭,然后继续播放。

java web 播放音频_使用Java ME以流形式播放Web服务器上的音乐文件相关推荐

  1. wav文件 服务器失败,.wav存储在服务器上的声音文件在加载web应用程序时无法播放...

    这是我试图实现的场景:与Web应用程序存储在同一服务器上的声音,在客户端遇到条件时播放.当我在IDE中运行它并将webconfig更改为指向数据库所在的服务器时,它完美地工作.但是,当我部署并通过浏览 ...

  2. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  3. JAVA 实现FTP功能_在Java程序中实现FTP功能

    本文来演示在JAVA编程中实现FTP功能的三个重要部分内容的源程序: FtpList部分是用来显示FTP上的文件; GetButton部分为从FTP下传一个文件; PutButton部分为向FTP服务 ...

  4. 在web服务器上运行jsp文件

    在web服务器上运行jsp文件 首先得在电脑上安装tomcat服务器,确保服务器能运行在8080端口页面,然后在myeclipse中新建web project ,建包,建类,在webRoot下面WEB ...

  5. 华为服务器视频无法播放视频文件夹,服务器上的视频文件

    服务器上的视频文件 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 语音文件和视 ...

  6. [投稿]通过Web界面在多台服务器上批量创建文件

    最近在EDAS产品上发现了一个有意思的功能,能够在Web界面上向多台服务批量下发命令执行,觉得这个功能能够极大的提升效率,因此想分享给其他小伙伴. 这里我以"通过Web界面在多台服务器上批量 ...

  7. java web 播放音频_用webAudio和canvas实现音频可视化

    前两天遇到了要显示音频波形图的需求,因为时间紧,就直接用了wavesufer.js,这两天有空,就研究了一下怎么用webAudio实现音频的可视化. 大致流程是对音源进行解析,解析得到的数据是个频谱数 ...

  8. java h5在线音频_用h5 audio播放mp3 播放一分钟就报错了

    使用的时候 下载的是mp3 播放 用的是audio ```java @At({"/", "/?"}) @Ok("raw") @Fail(&q ...

  9. java web应用程序_说说Java Web中的Web应用程序|乐字节

    大家好,我是乐字节的小乐,今天接着上期文章<Javaweb的概念与C/S.B/S体系结构>继续往下介绍Java Web ,这次要说的是web应用程序. 1. Web 应用程序的工作原理 W ...

最新文章

  1. Android之内存管理-内存监测-内存优化
  2. Java 代码性能优化
  3. 毕业了去哪里工作,一位毕业多年北漂人的经验感悟
  4. Android:最全面的 Webview 详解
  5. Spring Cloud Bus + RabbitMq 自动刷新
  6. EDFbrowser查看edf文件及睡眠分期认识
  7. 一步一步教你实现Emoji表情键盘
  8. Tomcat中文乱码问题【已亲测可用】
  9. [转] Ubuntu 16.04 RTL8111/8168/8411 不能上网 经常断网解决办法
  10. 寻路大数据:海量数据与大规模分析
  11. 关于操作系统镜像超过4G的解决办法
  12. vb可以开发用c语言,c语言和vb语言的区别是什么?_后端开发
  13. matlab pt站下载,PT站RSS下载使用教程 | PT邀请码网
  14. Mysql 错误1366, Incorrect string value: '\\xE6\\xB7\\xB1\\xE5\\x85\\xA5...' for column '
  15. 『单片机原理』程序存储器的结构
  16. 介于上海与江苏的地铁小户型
  17. 原 docker(22):使用docker 搭建网关,Mashape API 网关 Kong,安装dashboard,和pgadmin4
  18. bzoj4605 崂山白花蛇草水
  19. 葫芦娃手游服务器未响应,葫芦娃充值没反应 充值元宝未到账解决办法
  20. 什么是云计算的基本原理?具体的核心技术有哪些?

热门文章

  1. 域用户组成员 导出_隐私安全,黑客利用Mimikatz提取Windows用户凭证
  2. 基于spark mllib_Spark高级分析指南 | 机器学习和分析流程详解(下)
  3. Leetcode 198.打家劫舍 (每日一题 20210622)
  4. 强化学习笔记 DDPG (Deep Deterministic Policy Gradient)
  5. 强化学习笔记:Policy-based Approach
  6. 深度2万字好文:图像处理-基于 PyTorch 的 YOLO v5 表情识别(附源代码)
  7. Tableau实战系列浏览 Tableau 环境(七) -重组工作区
  8. 还在懵懂状态?给处于初/中级阶段的数据分析师的两三点建议
  9. 计算python执行时间
  10. Typora操作指南