首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 游戏天堂 > 游戏开发 > moto声音播放
【标  题】:moto声音播放
【关键字】:moto
【来  源】:http://blog.csdn.net/chinavfeng/archive/2007/04/16/1566602.aspx

moto声音播放

忘了从哪里拷贝过来的,呵呵!

根据MOTO的一些资料显示,在MOTO手机中播放声音有下面几条约束:

1、除了同时播放一个MIDI和一个WAV以外,MOTO手机无法同时播放多个声音,而且必须是先播放MIDI然后播放WAV;

2、除了MIDI或音阶序列以外,不能同时实现player的多个实例进入prefetched状态(预读取声音流);

3、播放新的声音之前,前一个player必须停止并释放资源(stop();deallocate())。

如果你遇到以下问题,可以试试我的解决方法:

1)只能播一次,或几次,接着就无法发出声音;

2)播放新的声音时,总是会多播放一次前一个声音;

3)或者其他奇怪的问题。

我的代码:

//引用以下
import javax.microedition.media.Player;
import javax.microedition.media.PlayerListener;


//定义多个声效及声音文件的类型
private String[] arrSoundFile = {"start.mid","right.wav","wrong.wav","help.wav","end.wav"};
private String[] arrSoundType = {"audio/x-midi","audio/x-wav","audio/x-wav","audio/x-wav","audio/x-wav"};

//定义播放器实例
public Player player;

//定义一个变量,控制是否发声
  public boolean isSoundOpen = false;

//播放声音主过程,参数为前面定义的声音数组的索引号
  public void playMedia(int iKey) throws Exception {

    // 创建实例
    player = Manager.createPlayer(
        getClass().getResourceAsStream("/midi/"+arrSoundFile[iKey]), arrSoundType[iKey]);

    // 绑定状态更新事件过程
    player.addPlayerListener(this);

    //播放声音
    player.setLoopCount(1);
    player.prefetch(); // prefetch
    player.realize(); // realize
    player.start(); // and start
  }

// 播放器状态更新事件过程
public void playerUpdate(Player player, String event, Object eventData) {

    //调试 跟踪过程
    //    System.err.println("event:" + event);

    //如果播放结束,就释放和关闭播放器实例
    if (event.equals("endOfMedia")) {
    player.deallocate();
    player.close();
    }
}

//播放声音调用过程
public void playSound(int iKey) {
   if(isSoundOpen)
  {
       try {
          playMedia(iKey);
        } catch (Exception e) {
          System.err.println("Unable to play: " + e);
          e.printStackTrace();
        }
      }
}
 

关于player的一些东西:【上一篇】
Windows CE 进程、线程和内存管理(三):【下一篇】
【相关文章】
  • Motorola 手机操作系统源代码
  • moto手机签名
  • moto E6刷机笔记
  • Moto EZX平台对话框编程
  • Moto A780视频制作全攻略
  • Motorola微处理器的bootloader分析与应用
  • 玩转motoE398
  • PMhttp://txqq.s11.xrea.com:8080/cdb/attachments/PDBI_moto.swf 那个摩托车不
  • Motorola瞄准新的Linux电话UI替换市场
  • 招聘Linux软件开发工程师---Motorola(中国)有限公司
  • 【随机文章】
  • 恢复WindowsME的实DOS模式
  • python(22): apply、map及函数工具、list的再构造(14.2-14.5)
  • oracle基本SQL语句
  • Windows系统开机时出现蓝屏问题解决方法
  • Ajax下的java的MVC
  • 英特尔多核平台编码优化大赛就顺便试试身手了
  • Java学习笔记——自己的类(用户存储)
  • 今天第一次用了vs2005的远程调试工具
  • VB API教程(王国荣版)(七)
  • apache + subervison 配置SSL
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.