当我通过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();
}
}
}
}
}
提前感谢。
答案 0 :(得分:1)
通过在您的URL上使用“; deviceside = true”,您告诉设备使用Direct TCP传输进行连接。在CDMA设备(和模拟器)上,这将按原样正常工作,但在GSM设备上,您需要指定APN。它可能已在设备设置中配置(在Options-&gt; TCP下),但通常情况下,它未配置。在这种情况下,您需要按照this KB article将其添加到网址。
不幸的是,如果您计划支持多个运营商,那么尝试让APN适合所有运营商可能会很乏味(以及支持噩梦)。在这种情况下,您可能希望使用BIS传输,这使得事情变得更加容易,因为没有APN。但是,您需要加入RIM的联盟计划才能访问BIS。
有关网络传输的更多信息,请参阅this KB article。