Question

Je pense que j'utilise InputStream mal avec un simulateur 9000 Blackberry:

J'ai trouvé quelques exemples de code,

http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/1089414/How_To_-_Play_video_within_a_BlackBerry_smartphone_application.html?nodeid=1383173&vernum=0

qui vous permet de lire des vidéos à partir d'une application Blackberry. Le code prétend qu'il peut gérer HTTP, mais il a fallu un certain fandangling pour l'obtenir à approcher réellement faire:

http://pastie.org/609491

Plus précisément, je fais:

 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());

J'ai trouvé que c'est la seule façon que je peux obtenir un InputStream d'un HTTPConnection sans provoquer: « JUM Erreur 104: Uncaught NullPointer Exception ». (Autrement dit, la pièce coulée en tant que StreamConnection, puis comme l'empêche de se briser HttpConnection).

Cependant, je ne suis toujours pas le streaming vidéo. Avant, un cours d'eau n'a pas pu être créé (il se briserait à l'exception de pointeur NULL). Maintenant, un flux est fait, le débogueur prétend qu'il est début à diffuser de la vidéo à partir ... et rien ne se passe. Pas de vidéo joue.

L'application ne gèle pas, ou un plantage quoi que ce soit. Je peux « pause » et « jouer » librement, et d'obtenir des messages de débogage appropriés pour les deux. Mais aucune vidéo montre.

Si je joue une vidéo stockée localement sur la mûre, tout est très bien (il joue en fait la vidéo), donc je sais que le joueur lui-même fonctionne bien, je "m me demandais si peut-être j'ai quelque chose de mal avec mon flux?

L'API dit le joueur peut prendre un InputStream. Y at-il un type spécifique dont il a besoin? Comment puis-je interroger mon inputstream de savoir si elle est valide? Il est déjà plus loin que j'ai eu avant.

-Jenny

Edit: Je suis sur un simulateur Blackberry Bold (9000). Je l'ai entendu dire que certaines versions de téléphones ne flux pas de vidéo via HTTP, cependant, le Téméraire fait. Je dois encore voir des exemples de ce bien. Quand je vais à l'Internet et point une vidéo jouable blackberry, il tente de diffuser, puis me demande de télécharger le fichier physiquement (et joue alors tout va bien une fois que je télécharger).

Edit: Aussi, j'ai une mûre physique gras, aussi bien, mais il ne peut pas non plus diffuser (je suis allé à m.youtube.com, pour obtenir un serveur / contenu erreur non trouvée). Y at-il quelque chose que je dois spécial faire pour diffuser du contenu RTSP?

Était-ce utile?

La solution

Alors, après une très longue période, j'ai déterminé que le Blackberry Bold 9000 ne fait pas le streaming http. J'ai fini par avoir à (ou plutôt un collègue de travail de mes devoir) écrire des méthodes personnalisées pour le téléchargement progressif pour simuler. Oh, bien.

Autres conseils

Vous devriez être en mesure de diffuser réellement. Tout d'abord, vous devez vous assurer que vous apposent les paramètres de connexion appropriés à votre URL (par exemple. « ; Interface = wifi » pour une connexion sans fil). Deuxièmement, vous devez vous assurer le fichier que vous diffusez est pas trop grand. Si elle est trop grande, vous obtiendrez une erreur HTTP indiquant « un fichier trop volumineux ». Pour résoudre ce problème, vous devez tamponner les choses (Consultez les API DataSource). Vous devez limiter ce que vous demandez à environ 1-2MB. Après avoir tiré que « morceau » vous devez garder demander morceaux séquentiels (avec des connexions HTTP séparées) de continuer à vous remplir la mémoire tampon. J'espère que cela aide

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top