J2ME音频播放:一种是自己编写一段音频(存放在数组中);另一种是加载音频资源文件。
Player实例的状态有五种:
1.Unrealized 未实现
2.Realized 以实现
3.Prefetched 预抓取
4.Started 开始
5.Closed 关闭
Player实例要获取系统资源并处理媒体内容以确定其内容类型或执行其他操作,可以通过调用实例的deallocate方法停止实现过程,但必须在Player实例完成到已实现状态的转变之前进行调用,一旦实现,Player实例将不能返回到未实现状态。
package com.mopietek;
import java.io.IOException;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.media.control.ToneControl;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class SequenceTone extends MIDlet{
public Display display;
public Form form;
public SequenceTone(){
display = Display.getDisplay(this);
form = new Form("Info Form");
}
public void toneSequence(){
byte tempo = 30;
byte d = 8;
byte C4 = ToneControl.C4;
byte D4 = (byte) (C4 + 2);
byte E4 = (byte) (C4 + 4);
byte F4 = (byte) (C4 + 5);
byte G4 = (byte) (C4 + 7);
byte rest = ToneControl.SILENCE;
byte [] mySequence = {
ToneControl.VERSION,1,ToneControl.TEMPO,tempo,ToneControl.BLOCK_START,
0,C4, d, F4, d, F4, d, C4, d, F4, d, F4, d, C4, d, F4, d,
ToneControl.BLOCK_END,0,ToneControl.BLOCK_START,1,C4, d, E4, d, E4, C4, d, E4,ToneControl.BLOCK_END,1,
ToneControl.PLAY_BLOCK,0,
ToneControl.PLAY_BLOCK,1,
ToneControl.PLAY_BLOCK,0
};
try{
//创建Player //资源
Player p = Manager.createPlayer(Manager.TONE_DEVICE_LOCATOR);
p.realize(); //已实现
ToneControl c = (ToneControl) p.getControl("ToneControl");
c.setSequence(mySequence);
p.prefetch(); //预抓取
p.start(); //读取音频
}catch(IOException e){
System.out.println("IO异常:"+e.toString());
e.printStackTrace();
}catch(Exception ee){
System.out.println("异常:"+ee.toString());
ee.printStackTrace();
}
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
display = null;
form = null;
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
display.setCurrent(form);
toneSequence();
}
}
通过资源文件获取方式代码:
try{
//获取音频文件
InputStream is = getClass().getResourceAsStream(soundFile);
player = Manager.createPlayer(is,soundType);
player.realize();
player.prefetch();
player.start();
}catch(MediaException ex){
ex.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
分享到:
相关推荐
在J2ME中处理音频是开发者经常遇到的任务,而“J2ME音频测试工具”就是为了帮助开发者更好地理解和调试音频功能而创建的。这个工具可能包含了各种功能,比如播放、暂停、停止音频,调整音量,以及对不同音频格式的...
通过分析这些源代码,我们可以深入理解J2ME开发中的核心概念和技术。 J2ME是Java平台的一个子集,专门用于资源有限的设备,如移动电话、嵌入式系统和智能家电等。它提供了丰富的API,使得开发者能够构建跨平台的...
5. **音频处理**:J2ME支持简单的音频播放,如使用`Player`类加载和播放音乐或音效。 6. **游戏逻辑**:设计游戏规则,包括角色移动、碰撞检测、计分系统等,通常需要一些基本的数学和算法知识。 7. **性能优化**...
音频方面,MIDP支持播放简单的声音和音乐,如WAV和MIDI文件。 4. **用户界面** MIDP的User Interface组件,如Form、ChoiceGroup和TextBox,提供了基本的用户交互元素。《赤血英豪》的源代码可能包含了自定义UI控件...
5. **音频处理**:J2ME提供了`Player`类用于播放音频,源代码可能包含了游戏音效和背景音乐的加载与播放逻辑。 6. **用户输入处理**:J2ME通过`KeyListener`或`Command`对象处理用户输入,如按键操作。源代码会显示...
"J2ME 游戏原代码" 提供的资源可能是一个包含 J2ME 游戏完整源代码的压缩包,名为 "HighSeas",这可能是以海洋冒险或海盗为主题的游戏。 在深入讨论 J2ME 游戏开发的知识点之前,我们先理解一下 J2ME 的核心组成...
郭克华的源代码可能涵盖了如何播放音频、视频,以及如何利用设备的加速度计、GPS等功能。 总之,"郭克华J2ME视频教学源代码"是一个宝贵的教育资源,它涵盖了J2ME开发的多个关键领域。通过详细研究这些源代码,学习...
J2ME支持MIDI和WAV格式的音频播放,虽然功能相对简单,但在资源有限的设备上足够满足基本需求。 最后,游戏的状态管理也是非常重要的。赛车游戏可能包括开始界面、游戏进行、暂停、结束等多种状态,源代码中会有...
源代码可能包含播放音频、显示图片的示例。 7. **游戏开发**:J2ME的Canvas类提供了一个低级别的绘图接口,适合开发2D游戏。开发者可以学习如何利用Canvas进行游戏逻辑和渲染。 8. **事件处理**:J2ME使用Listener...
通过实际分析这些源代码,开发者可以深入理解J2ME的编程机制,掌握游戏开发的核心技术。 在J2ME手机游戏中,主要涉及到以下几个关键知识点: 1. **MIDP(Mobile Information Device Profile)**:这是J2ME的一部分...
【J2ME开发精解源代码.rar】是一个与Java Micro Edition(J2ME)开发相关的压缩包,包含了一些源代码示例,旨在帮助开发者深入理解J2ME编程。J2ME是Java平台的一个子集,主要用于移动设备和嵌入式系统的应用程序开发...
7. **多媒体处理**:J2ME可以处理音频和图像,源码可能包含如何播放音频、显示图片和动画。 8. **设备特性利用**:如GPS定位、蓝牙通信、传感器数据获取等,源码将演示如何访问和使用这些设备功能。 9. **性能优化...
6. **音频管理**:J2ME的MIDP提供MidiPlayer和WavePlayer类来播放音效和背景音乐,源代码会展示如何加载和控制音频资源。 7. **资源管理**:图像、音频和其他资源通常需要预加载和有效管理,以减少内存占用和提高...
J2ME的核心组件包括配置(Configurations)、 profiles(配置文件)和可选包(Optional Packages)。** **在“J2ME学习范例源代码”中,我们可以看到一系列针对J2ME应用程序开发的实际示例。以下是一些关键的知识点...
- **MIDlet**:J2ME应用的核心单元,类似于Java SE中的应用程序主类。 - **Displayable**:J2ME中的显示组件,可以是屏幕、对话框或其他可视化元素。 - **Canvas**:自定义图形绘制的基础类,允许开发者直接控制...
**J2ME游戏代码(含报告)** J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,专为嵌入式设备和移动设备设计,如早期的手机和PDA。J2ME提供了丰富的API,允许开发者创建各种功能的应用程序,包括游戏。在...
8. **资源管理**:J2ME设备内存有限,因此资源如图片、音频必须有效管理。通常会使用精灵图(Sprite Sheet)来存储多个图像,并按需加载和释放。 9. **网络和数据存储**:尽管J2ME的网络功能有限,但可以实现基本的...
在这款游戏中,我们可以看到J2ME的游戏框架应用,包括游戏循环、渲染机制、事件处理、对象更新等核心部分。游戏循环是任何游戏的基础,它负责控制游戏的帧率和逻辑更新。J2ME中的游戏循环通常由`while`或`do-while`...
在这个“飞机实例原代码”中,我们可以深入理解J2ME游戏开发的核心概念和技术。 首先,让我们探讨一下“飞机的移动”。在J2ME中,实现物体的移动通常涉及到坐标系统和时间管理。开发者会使用`PaintComponent`方法来...
《蜀山剑侠传》是一款基于...通过研究《蜀山剑侠传》的J2ME源代码,开发者可以学习到如何在移动平台上构建一个完整的2D游戏,包括图形渲染、游戏逻辑、用户交互等核心环节,对进一步的移动游戏开发有着重要的参考价值。