我认为我在 Blackberry 9000 模拟器中错误地使用了 InputStream:
我找到了一些示例代码,
让您可以在 Blackberry 应用程序中播放视频。该代码声称它可以处理 HTTP,但需要一些技巧才能使其真正实现这一点:
http://pastie.org/609491
具体来说,我正在做:
StreamConnection s = null;
s = (StreamConnection)Connector.open("http://10.252.9.15/eggs.3gp");
HttpConnection c = (HttpConnection)s;
InputStream i = c.openInputStream();
System.out.println("~~~~~I have a connection?~~~~~~" + c);
System.out.println("~~~~~I have a URL?~~~~" + c.getURL());
System.out.println("~~~~~I have a type?~~~~" + c.getType());
System.out.println("~~~~~I have a status?~~~~~~" + c.getResponseCode());
System.out.println("~~~~~I have a stream?~~~~~~" + i);
player = Manager.createPlayer(i, c.getType());
我发现这是从 HTTPConnection 获取 InputStream 且不会导致“JUM 错误 104:未捕获 NullPointer 异常”的唯一方法。 (也就是说,转换为 StreamConnection,然后转换为 HttpConnection 可防止崩溃)。
但是,我仍然没有流式传输视频。之前,无法创建流(它会因空指针异常而崩溃)。现在,正在创建一个流,调试器声称它开始从中传输视频......但什么也没有发生。没有视频播放。
该应用程序不会冻结、崩溃或任何其他情况。我可以自由地“暂停”和“播放”,并为两者获取适当的调试消息。但没有视频显示。
如果我正在播放黑莓本地存储的视频,一切都很好(它实际上播放了视频),所以我知道播放器本身工作正常,我只是想知道我的流是否有问题?
API 表示播放器可以接收输入流。它需要特定的类型吗?如何查询我的输入流以了解它是否有效?它的存在比我以前得到的更远。
-Jenny
编辑:我使用的是 Blackberry Bold 模拟器 (9000)。我听说某些版本的手机不通过 HTTP 传输视频,但是 Bold 可以。不过我还没有看到这样的例子。当我访问互联网并指向黑莓可播放视频时,它会尝试进行流式传输,然后要求我实际下载该文件(下载后即可正常播放)。
编辑:此外,我也有一个物理黑莓 Bold,但它也无法流式传输(我访问了 m.youtube.com,只是得到了服务器/内容未找到错误)。我需要做一些特殊的事情来传输 RTSP 内容吗?