使用 javax.microedition.media.Player 时应用程序崩溃并出现异常

Posted

技术标签:

【中文标题】使用 javax.microedition.media.Player 时应用程序崩溃并出现异常【英文标题】:Application crashes with Exception when using javax.microedition.media.Player 【发布时间】:2009-09-22 12:05:23 【问题描述】:

我有一个应用程序处理来自蓝牙的数据并将其发送到网络服务。最近有一个向应用程序添加声音的请求。现在,当应用程序处理批量数据并且播放器在几秒钟后不断播放时,我得到“应用程序没有响应”异常。然后终止该过程。在日志中,我可以看到在此异常之后记录了很多 ForcedStackTrace 异常。

声音在单独的线程中播放。如果应用程序不播放声音或播放短声音 - 一切正常。有什么办法可以避免这种异常的发生吗?为什么会这样?

InputStream mediaStream = null;
try 
    mediaStream = getClass().getResourceAsStream(relativePath);
    getLogger().log("setting player _ " + _audioType);
    setPlayer(Manager.createPlayer(mediaStream, _audioType));
    _currentPlayer.addPlayerListener(this);
    _currentPlayer.setLoopCount(1);
    _currentPlayer.realize();
    VolumeControl vc = (VolumeControl) _currentPlayer
            .getControl("VolumeControl");
    if (vc != null) 
        vc.setLevel(_voumeLevel);
    
    _currentPlayer.prefetch();
    _currentPlayer.start();
 catch (Exception e) 

(来自 BB 论坛的交叉发布)

【问题讨论】:

您能指定确切的 JDE 版本吗?您究竟是如何创建播放器的(欢迎提供任何特定参数)? 我使用 JDE 4.0.2 库编译。项目基于 Eclipse。 你可以随时编辑你的问题,也可以回答;) 【参考方案1】:

通过实现我自己的 PlayerManager 来解决,它在单独的线程中运行将以队列方式播放项目,而不是使用内部 Player 实现有多个线程。

【讨论】:

以上是关于使用 javax.microedition.media.Player 时应用程序崩溃并出现异常的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)