потоковое видео по http в blackberry - PullRequest
1 голос
/ 05 июня 2010

пока я искал видеоплеер по 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

я могу запустить, добавив "; deviceside = true" в конце URL. он отлично работает в симуляторе jde4.5. он получает 3gp видео с моего локального сервера. Я проверил с 580kb файлов и работает нормально. но когда я получаю тот же файл с моего сервера (не локального, а реального сервера), у меня возникают проблемы с большими файлами (например, 580 кб). он воспроизводит файлы 180 КБ (но иногда он не воспроизводит этот файл), но не воспроизводит файл 580 КБ. а также я развернул свое приложение на своем устройстве 9000. Иногда оно воспроизводит небольшой файл (180 КБ), но никогда не воспроизводит большой файл (580 КБ).

почему он воспроизводится, если он находится в моем локальном файле, а не воспроизводится в реальном мире?

Я застрял на несколько дней. надеюсь, ты поможешь мне.

, а также код по приведенному ниже URL-адресу не работает, единственный код, который я нашел, - выше.

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

Кстати, нет метода, такого как изменение размера (long param) класса CircularByteBuffer. поэтому я комментирую релевантную строку (buffer.resize (buffer.getSize () + (buffer.getSize () * процент / 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 Ответ

1 голос
/ 06 июня 2010

Используя «; deviceside = true» в своем URL, вы указываете устройству использовать транспорт Direct TCP для вашего соединения. На устройствах CDMA (и на симуляторах) все будет работать как есть, но на устройствах GSM необходимо указать APN. Возможно, он уже настроен в настройках устройства (в разделе «Настройки-> TCP»), но чаще всего он не настраивается. В этом случае вам необходимо добавить его к URL-адресу согласно этой статье базы знаний .

К сожалению, если вы планируете поддерживать несколько перевозчиков, может быть утомительно (и кошмаром поддержки) попытаться получить правильные APN для всех них. В этом случае вы можете использовать BIS-транспорт, который значительно упрощает работу, потому что APN отсутствует. Однако вам нужно присоединиться к программе RIM Alliance, чтобы получить доступ к BIS.

Более подробную информацию о сетевых транспортах можно найти в этой статье базы знаний .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...