J2ME处理声音简介

在J2ME中,处理声音需要使用到Mobile Media API(MMAPI),该包是MIDP1.0的可选包,在MIDP2.0中已经包含了这个包。所以如果你使用MIDP1.0的话,请确认你的运行环境是否支持。一般手机支持的声音文件格式为wav、mid和mpg等。具体请查阅你的手机说明文档。在声音处理中,有很多处理的方式,这里说一下最常用的情况,播放JAR文件中的wav文件。播放声音文件的流程:

1、按照一定的格式读取声音文件

播放JAR文件中的声音文件一般是将声音文件处理成流的形式。示例代码:

InputStream is = this.getClass().getResourceAsStream("/Autorun.wav");

其中Autorun.wav文件位于JAR文件的根目录下,如果位于别的目录,需要加上目录名称,如/res /Autorun.wav。

2、将读取到的内容传递给播放器

将流信息传递给播放器,播放器按照一定的格式来进行解码操作,示例代码:

Player player = Manager.createPlayer(is,"audio/x-wav");

其中第一个参数为流对象,第二个参数为声音文件的格式。

3、播放声音

使用Player对象的start方法,可以将声音播放出来,示例代码:player.start();

在播放声音时也可以设定声音播放的次数,可以使用Player类中的setLoopCount方法来实现,具体可查阅API文档。下面是在NOKIA S60模拟器中测试通过。代码如下:

package sound;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import java.io.*;
public class SoundMIDlet extends MIDlet
{
private Player player = null;
/** Constructor */
public SoundMIDlet()
{
try
{
InputStream is = this.getClass().getResourceAsStream("/Autorun.wav");
player = Manager.createPlayer(is,"audio/x-wav");
}
catch(IOException e)
{
System.out.println("1:" + e);
}
catch(MediaException e)
{
System.out.println("2:" + e);
}
catch(Exception e)
{
System.out.println("3:" + e);
}
}
/** Main method */
public void startApp()
{
if(player != null)
{
try
{
player.start();
}
catch(MediaException e)
{
System.out.println("4:" + e);
}
}
}
/** Handle pausing the MIDlet */
public void pauseApp()
{
}
/** Handle destroying the MIDlet */
public void destroyApp(boolean unconditional)
{
}
}

时间: 2024-09-12 07:35:47

J2ME处理声音简介的相关文章

J2ME 3D技术简介

3D技术对我们来说已经非常熟悉了,最常用的3D API有OpenGL和Microsoft的Direct 3D,在桌面游戏中早已广泛应用.对于J2ME程序而言,Mobile 3D Graphics API(JSR184)的出现,使得为手机应用程序添加3D功能成为可能. JSR184标准(M3G:Mobile 3D Graphics)为Java移动应用程序定义了一个简洁的3D API接口,J2ME程序可以非常方便地使用M3G来实现3D应用比如游戏等等.M3G被设计为非常轻量级的,整个API的完整实现

J2ME开发的体会

J2ME方面开发的资料,确实是少之又少,一般给新手推荐的都是王森先生的<PDA与手机开发入门>一书,然而该书其实并不适合新人阅读,该书的前几章花了很大篇幅来讲解命令行调试J2ME程序的方法和很多要点,其实这些东西,作为一个初级的J2ME开发者来说,完全没有必要学习和掌握,反而只会给自己平添很多负担.现在做J2ME开发,大多都有了IDE(集成开发环境),比如JB,Eclipse什么的,就算是用最简单的WTK,也不需要进行path的配置等操作,所以初学者完全可以跳过这些内容,直接上手.我的认为,做

使用Javascript制作声音按钮文章简介:

javascript|按钮 文章简介:     一般而言,网页中按钮是没有声音触发事件的.如果要让按钮响应鼠标动作发出声音,我们可以写一段javascript脚本代码来实现. 能让按钮发出声音的脚本,这下不用制作flash按钮也可以了,我试用的感觉还不错. 制作方法: 1.新建文件: DynamicAudioButton.js ,代码://Customize Dynamic Audio Link 自定义动态声音链接function DynamicAudioLink(){    open("htt

J2ME程序开发全方位基础讲解汇总

程序     一.J2ME中需要的Java基础知识 现在有大部分人,都是从零开始学J2ME的,学习J2ME的时候,总是从Java基础开始学习,而且现在讲Java基础的书籍中都是以J2SE来讲基础,这就给学习造成了一些不必要的麻烦,下面将J2ME中用到的和不需要的Java基础知识做一个简单的说明. J2ME中使用到的Java基础知识:   1.Java语法基础:包括基本数据类型.关键字.运算符等等   2.面向对象的思想:类和对象的概念,继承和多态等等.   3.异常处理   4.多线程 J2ME

基于MVC模式的J2ME应用程序框架设计

1 J2ME应用程序框架的现状 Sun公司在1999年6月推出了J2ME(Java 2 MicroEdition,Java 2袖珍版).J2ME是专门为那些使用有限电源.有限网络连接以及有限图形用户界面能力的设备开发的,满足了消费电子和嵌入式设备开发的需要. 而7年后的今天,消费电子和嵌入式设备发展迅速.硬件设备速度越来越快,存储容量也越来越大,这也就自然带动了软件的发展.MIDP 2.0和CLDC 1.1也相继问世,各种各样的JSR也层出不穷. 硬件平台和软件平台的飞速发展自然带动了人们需求的

【J2ME 2D 游戏开发系列】◣HIMI游戏开发启蒙教程◢JAVA零基础学习J2ME游戏开发全过程!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/j2me-2/774.html Himi从写博客的最早开始就是Android游戏开发相关的,其实那么很多童鞋也知道Himi是做Java-J2me/Kjava出身,所以不少童鞋还在问我是否可以写一些J2me的相关游戏开发博文.虽然j2me趋势随着Nokia的没落和Android的崛起已经慢慢被弱化掉,但是J2me也是早些年非常火的平台不是么!

J2ME网络编程以及网络游戏的实现

编程|网络 引言 J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话.可视电话.数字机顶盒和汽车导航系统等等.即J2ME是为消费电子产品和手持设备量身定制的Java专用版本. J2ME的出现使开发跨平台的消费类电子产品的应用软件成为可能.Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序.它提供了基于HTTP的高级Internet协议,使移动电话能以Clien

使用Javascript制作声音按钮的实例代码

javascript|按钮 文章简介: 一般而言,网页中按钮是没有声音触发事件的.如果要让按钮响应鼠标动作发出声音,我们可以写一段JavaScript脚本代码来实现. 能让按钮发出声音的脚本,这下不用制作Flash按钮也可以了,我试用的感觉还不错. 制作方法: 1.新建文件: DynamicAudioButton.js ,代码: //Customize Dynamic Audio Link 自定义动态声音链接 function DynamicAudioLink(){     open("http

VEGAS 5.0 音频新手入门——音频处理及DX音频插件简介

五课 音频处理及DX音频插件简介 通过上节课的学习,你可以完整地录到歌手的干净人声. 接下来就是对干净的人声进行音频处理,以获得最佳的听感. 对人声常用的音频处理一般包括以下几个方面(注意顺序,很重要): 1.EQ:也就是均衡,因为话筒的拾音频响曲线差异的以及歌手嗓音特征差异,一般根据录出的人声实际效果作适当处理,比如有的歌手声音太尖,有的听起来很闷,有的鼻音很重,有的唇齿音很重,这些都是由于声音各频段的强弱不均衡造成的听觉差异.可以通过EQ对各频段的声音信号均衡(增减)处理,能起到改善作用.