黑莓手机上的http视频流

时间:2010-06-05 18:27:39

标签: http video blackberry streaming

当我通过http搜索视频播放器时,我找到了位于此网址的文章;

http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/1089414/Stream ing_media _-_ Start_to_finish.html?nodeid = 2456737& ve rnum = 0

我可以通过在url末尾添加“; deviceside = true”来运行。它在jde4.5模拟器中工作正常。它从我的本地服务器获取3gp视频。我测试了580kb文件,工作正常。但是当我从我的服务器(不是本地的,真正的服务器)获得相同的文件时,我遇到了大文件(例如580 kb)的问题。它播放180kb文件(但有时它也不播放此文件)但不播放580kb文件。而且我将我的应用程序部署到我的9000设备上它有时会播放小文件(180kb)但从不播放大文件(580kb)。

为什么它会在我的本地文件中播放,而不是在现实世界中播放?

我已经坚持了好几天。希望你帮助我。

并且下面给出的网址上的代码也不起作用,我发现的唯一代码就是上面的代码。

blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/1089414/How_To _-_ Play_video_within_a_BlackBerry_smartphone_appli cation.html?nodeid = 1383173& vernum = 0

顺便说一句,没有RoundByteBuffer类的resize(long param)等方法。所以我评论相关行(buffer.resize(buffer.getSize()+(buffer.getSize()* percent / 100));如下所示。

public void increaseBufferCapacity(int percent) {
    if(percent < 0){
        log(0, "FAILED! SP.setBufferCapacity() - " + percent);
        throw new IllegalArgumentException("Increase factor must be positive..");
    }
    synchronized(readLock){
        synchronized(connectionLock){                
            synchronized(userSeekLock){
                synchronized(mediaIStream){                
                    log(0, "SP.setBufferCapacity() - " + percent);        
                    //buffer.resize(buffer.getSize() + (buffer.getSize() * percent / 100));
                    this.bufferCapacity = buffer.getSize();
                }
            }
        }
    }
}

提前感谢。

1 个答案:

答案 0 :(得分:1)

通过在您的URL上使用“; deviceside = true”,您告诉设备使用Direct TCP传输进行连接。在CDMA设备(和模拟器)上,这将按原样正常工作,但在GSM设备上,您需要指定APN。它可能已在设备设置中配置(在Options-&gt; TCP下),但通常情况下,它未配置。在这种情况下,您需要按照this KB article将其添加到网址。

不幸的是,如果您计划支持多个运营商,那么尝试让APN适合所有运营商可能会很乏味(以及支持噩梦)。在这种情况下,您可能希望使用BIS传输,这使得事情变得更加容易,因为没有APN。但是,您需要加入RIM的联盟计划才能访问BIS。

有关网络传输的更多信息,请参阅this KB article