【问题标题】:how to play audio as background in blackberry如何在黑莓中播放音频作为背景
【发布时间】:2011-03-11 05:41:48
【问题描述】:

我已将Player 对象创建为

player = Manager.createPlayer(inputStream,"audio/mpeg");

并将音频播放为

player.realize(); player.prefetch(); player.start(); 

它开始播放流。这里inputstream 指的是直播网址。现在我的问题是,当我单击后退按钮时,应用程序将关闭,因此播放器也将停止播放。但是即使应用程序关闭,我也需要在后台播放音频,并且在启动应用程序后我不想再次初始化Player 对象,为此我必须将Player 对象保持为单例。我正在使用 4.7 blackberry api。有人可以告诉我这一切是如何实现的吗?

谢谢
金星

【问题讨论】:

    标签: blackberry audio-player


    【解决方案1】:

    重写 Screen 类中的“onClose()”方法以捕获关闭事件并将您的应用置于后台:

    public boolean onClose() {
        Application.getApplication().requestBackground();
        return false;
    }
    

    【讨论】:

    • 感谢您的回复。它几乎解决了我的问题。但是我们需要考虑一件事。如果我放置上面的代码 sn-p,我的应用程序将始终进入后台。它在播放器运行时处于后台,否则应该从堆栈中删除。你能告诉我如何改变 onclose() 方法吗?
    • 为此我已将 onClose() 更改为 public boolean onClose() { if(player.getState()==Player.STARTED){ Application.getApplication().requestBackground();返回假; } 返回真; } 但它永远不会让我关闭应用程序。
    • 看起来播放器状态可能始终为 Player.STARTED。当您不希望播放媒体时,请确保调用 Player.stop() 和/或 Player.close(),这会将播放器状态移出 Player.STARTED。
    • 我通过使用 close() 方法得到了我想要的 if(player!=null&&player.getState()==Player.STARTED){ Application.getApplication().requestBackground(); }else{ super.close(); }
    【解决方案2】:

    查看 RIM 的 Tim Windsor 撰写的关于在后台运行应用程序的多篇博文。

    【讨论】:

      【解决方案3】:

      基本上你需要覆盖后退按钮的行为,只是将你的应用程序发送到后台而不关闭它。然后播放器将继续播放。这方面有很多资源和教程。也许@Ted Hopp 发布的链接中的某些内容可能会对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多