快速业务通道

手机游戏中的声音处理详解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
lean isSoundEnable() { return soundEnable; } public void setSoundEnable(boolean e) { if (!e) soundEnable = e; }

手机游戏中的声音处理详解(3)

时间:2011-02-07

在V300中,

1)public class EMSound { public String type; public byte[] data; public EMSound(byte[] data, String type) { this.type = type; this.data = data; } }

2)import javax.microedition.media.Player; import javax.microedition.media.PlayerListener; import javax.microedition.media.Manager; import javax.microedition.media.Control.*;

3)

//Sound soundPlayer; PlayerListener soundListener = new EMSoundListener(); Player soundPlayer; EMSound currentSound = null; boolean soundPlaying = false; boolean soundEnable = true; class EMSoundListener implements PlayerListener { public void playerUpdate(Player player, String event, Object eventData) { //soundStateChanged(int event) if (event == PlayerListener.STOPPED) { soundPlaying = false; } if (event == PlayerListener.STARTED) { soundPlaying = true; } } } public EMSound loadSound(String resfile, int resID) { EMSound sound; try { InputStream is = getClass().getResourceAsStream(resfile + "/" + resID + ".mid"); int len = (int) is.skip(10000); is.close(); is = getClass().getResourceAsStream(resfile + "/" + resID + ".mid"); byte[] barr = new byte[len]; is.read(barr); is.close(); sound = new EMSound(barr, "audio/midi"); } catch (Exception ex) { sound = null; } return sound; } public void playSound(EMSound sound, int count) { if (!soundEnable) try { if (soundPlaying) if (soundPlayer == null) { soundPlayer = Manager.createPlayer(new ByteArrayInputStream(sound.data), sound.type); soundPlayer.addPlayerListener(soundListener); currentSound = null; } if (sound != currentSound) { soundPlayer.close(); soundPlayer = Manager.createPlayer(new ByteArrayInputStream(sound.data), sound.type); currentSound = sound; } soundPlayer.start(); } catch (Exception ex) { soundPlaying = false; System.out.println(ex.toString()); } } public void stopSound() { if (!soundEnable) if (soundPlayer != null) { try catch (Exception e) } } public boolean isSoundPlaying() { return soundPlaying; } public boolean isSoundEnable() { return soundEnable; }

手机游戏中的声音处理详解(4)

时间:2011-02-07

3.读取mid文件

1)

import javax.microedition.media.*;

2)

Player player; void initSound() { try { player = Manager.createPlayer(getStream("/sound/b_main.mid"), "audio/midi"); player.realize(); player.setLoopCount(100000); } catch (Exception e) }

3)

//在程序中对声音的控制 m_playSound = (byte) (1 - m_playSound); if (m_playSound == 1) { try catch (Exception e) {} } if (m_playSound == 0) { try catch (Exception e) {} }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号