ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [转载]详细介绍手机游戏中的声音处理

[转载]详细介绍手机游戏中的声音处理

原创 Linux操作系统 作者:dinner1007 时间:2019-05-21 15:48:06 0 删除 编辑
详细介绍手机游戏中的声音处理
详细介绍声音处理
/**
* 作者 colico Email:colico@163.com
* http://blog.csdn.net/colico
* http://colico.ys168.com
* 注:此为 我是小o 原创,需要转载请附上以上信息。
*
*/


本文是在同一个游戏中移植在不同机型时所做的对声音的处理,考虑到性能的要求,对每种类型的手机做了一定的要求

s40 中的声音处理:

1) import com.nokia.mid.sound.*;

2)

Sound soundPlayer;
void initSound(){
soundPlayer = new Sound(b_main,1);
if(m_playSound == 1){
soundPlayer.play(0);
}
}

3)
byte[] b_main = {
(byte)0x02,(byte)0x4a,(byte)0x3a,(byte)0x40,
(byte)0x04,(byte)0x01,(byte)0x1f,(byte)0x1e,
(byte)0x54,(byte)0x88,(byte)0x38,(byte)0x84,
(byte)0x44,(byte)0xbc,(byte)0x4a,(byte)0xc4,
(byte)0xa0,(byte)0xa9,(byte)0x0b,(byte)0x91,
(byte)0x27,(byte)0x22,(byte)0xa2,(byte)0xb1,
(byte)0x31,(byte)0x13,(byte)0x88,(byte)0x00,
};

4)
static int m_playSound = 1;

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


//----------------------------------------------------

使用 ott 文件 在nokia 40或 60中

1) 定义数据结构
public class EMSound
{
public int type;
public byte[] data;

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

2)
import com.nokia.mid.ui.*;
import com.nokia.mid.sound.*;
3)
Sound soundPlayer;
SoundListener soundListener = new EMSoundListener();


EMSound currentSound = null;
boolean soundPlaying = false;
boolean soundEnable = true;

class EMSoundListener
implements SoundListener {
public void soundStateChanged(Sound sound, int event) {
switch (event) {
case Sound.SOUND_STOPPED:
soundPlaying = false;
break;
case Sound.SOUND_PLAYING:
soundPlaying = true;
}
}
}

public EMSound loadSound(String resfile, int resID) {
EMSound sound;
try {
InputStream is = getClass().getResourceAsStream(resfile + "/" + resID +
".ott");
int len = (int) is.skip(10000);
is.close();
is = getClass().getResourceAsStream(resfile + "/" + resID + ".ott");
byte[] barr = new byte[len];
is.read(barr);
is.close();
sound = new EMSound(barr, Sound.FORMAT_TONE);
}
catch (Exception ex) {
sound = null;
}
return sound;
}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-131605/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-08-23

  • 博文量
    1714
  • 访问量
    1298482