如何修复诺基亚设备(J2me)中的媒体异常

Posted

技术标签:

【中文标题】如何修复诺基亚设备(J2me)中的媒体异常【英文标题】:How to fix Media Exception in Nokia device(J2me) 【发布时间】:2012-01-13 09:39:04 【问题描述】:

我正在用 J2ME 开发一个游戏,我在游戏中使用了 4 个不同的声音 (midi) 文件。当我在 nokia 设备上运行此游戏时,它显示too many players prefetched 异常。它在 三星 中运行良好。如何解决?

【问题讨论】:

您必须接受答案以帮助将来查看该问题。 @shalini 你必须点击正确答案的绿色勾号。 【参考方案1】:

我遇到了同样的问题并解决了实现 PlayerListener 并在播放后释放声音:

  playbackPlayer = Manager.createPlayer(ttsConnection.getFileUrl());
  PlayerListener pl = new PlayerListener() 

      public void playerUpdate(Player player, String event, Object eventData) 
          if (event.equalsIgnoreCase(PlayerListener.END_OF_MEDIA)
                  || event.equalsIgnoreCase(PlayerListener.STOPPED)) 
              player.close();
          

      
  ;
  playbackPlayer.addPlayerListener(pl);

【讨论】:

【参考方案2】:

原因:

许多设备都限制了可以同时处于prefetched 状态的声音数量。这因设备而异。例如,在许多 S60 上,它是 6 个,而在许多其他设备上,它只有一个。

可能的解决方案:

Realize 玩家,但不要prefetch 他们 - 他们玩时会自动成为prefetched

使用PlayerListener在玩家玩完后释放玩家,以避免在prefetched状态下持有太多。

【讨论】:

以上是关于如何修复诺基亚设备(J2me)中的媒体异常的主要内容,如果未能解决你的问题,请参考以下文章

使用 j2me 在游戏中的诺基亚设备振动

诺基亚 E65 上的 J2ME 媒体播放器可以工作吗?

J2ME:设备上的多个 HttpConnection 失败(诺基亚 C2-O3)

如何在诺基亚 Asha 的 J2ME 中将对象转换为字符串?

如何获得支持所有设备的 J2ME 的 IMEI? [复制]

在 J2me 中处理外部音量键