Как приостановить и воспроизвести потоковый аудиоплеер J2ME с RTP - PullRequest
0 голосов
/ 25 декабря 2011

Вот как я пытаюсь воспроизвести аудиопоток с сервера через RTP.

try {  
     String url = "rtp://...";  
     Player p = Manager.createPlayer(url);
     p.realize(); 
     VideoControl video = (VideoControl) p.getControl("VideoControl");
     Item itm = (Item) video.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, null); 
     midlet.form.append(itm); 
     p.start();
} catch (Exception e) {...} 

Я пробовал http, и он работал хорошо.В http, весь медиа-контент загружается, а затем мы можем воспроизводить, приостанавливать и воспроизводить снова.Все в порядке.Я хочу воспроизвести аудио из RTP.Я хочу знать, как поставить проигрыватель на паузу (и данные не загружаются, сохранить запись, на которой воспроизведение было приостановлено), снова воспроизвести, когда пользователю необходимо воспроизвести (и начать загрузку снова с последней загруженной точки (не с начала)).

Насколько я знаю, смартфоны не могут поддерживать сеанс с сервером, так как мобильный телефон не сохраняет сеансы и отправляет обратно на сервер каждый раз, когда запрос отправляется на сервер (и просто отправляется толькозапросить и получить ответ, нет управления сессиями).Может я не прав.

В любом случае, как я могу приостановить (и остановить загрузку) и воспроизвести снова (начать загрузку с последней точки, где загрузка остановилась) аудио в приложении J2ME?Пожалуйста, дайте мне знать, если кто-нибудь знает хорошее решение, пример кода.

Ответы [ 2 ]

1 голос
/ 04 сентября 2012

При потоковой передаче весь мультимедийный файл НЕ загружается сразу, скорее, часть мультимедийного содержимого загружается в процессе воспроизведения. Когда проигрыватель создается с помощью локатора rtp / rtsp, достаточно вызвать player.stop (), чтобы остановить воспроизведение и любую дальнейшую загрузку носителя. Аналогично, player.start () достаточно для возобновления воспроизведения с того места, где оно было остановлено.

Вы должны иметь в виду, что, поскольку носитель не является локальным, если поток не возобновляется через некоторое время, потоковый сервер может посчитать, что поток истек, и вам потребуется восстановить поток.

0 голосов
/ 20 февраля 2012

Просто следуйте указаниям player.stop (), player.start (); достаточно функции

...