ProgressDialog перед загрузкой видео в Titanium - PullRequest
0 голосов
/ 16 марта 2012

Я работаю в приложении Android в Titanium.На определенном экране я должен воспроизвести видео по ссылке.Для зарядки требуется некоторое время, поэтому я должен поставить ProgressDialog, пока видео не запустится.Я пытался использовать ActivityIndicator для этого, например:

var activeMovie = Titanium.Media.createVideoPlayer({
        backgroundColor:'#000',
        fullscreen:true
   });

   var dialog = Titanium.UI.createActivityIndicator();
    dialog.message = 'Loading...';

   win.add(dialog);
   dialog.show(); 

   activeMovie.setUrl(url);
   activeMovie.mediaControlStyle=Titanium.Media.VIDEO_CONTROL_FULLSCREEN;

   activeMovie.addEventListener("preload", function(e){
        dialog.show()  ;        
  });

   activeMovie.addEventListener('load', function(e){
        dialog.hide()  ;        
   });
   activeMovie.addEventListener('complete', function(e){
        activeMovie.stop();
        navController.close();
   });

Этот код заставляет ProgressDialog появляться на 2 секунды, а затем исчезаетПо истечении этого времени у меня на время появляется черный экран (видео заряжается), и по истечении этого времени начинается видео.Может ли кто-нибудь помочь мне, где моя ошибка?

1 Ответ

3 голосов
/ 16 марта 2012

Одним из решений вашей проблемы может быть:

var activeMovie = Titanium.Media.createVideoPlayer({
       url: url,
       backgroundColor:'#111',
       movieControlMode:Titanium.Media.VIDEO_CONTROL_DEFAULT // See TIMOB-2802, which may change this property name

    });

    win.add(activeMovie);
    var dlg = Titanium.UI.createActivityIndicator();
    win.addEventListener('open',function()
    {
           dlg.setMessage('Loading...');
           dlg.show();
    });

    activeMovie.addEventListener('load',function()
    {
           dlg.hide();
    });

    activeMovie.addEventListener('complete',function()
    {
           win.close();
    });

    activeMovie.play();

    win.addEventListener('close', function() 
    {
           windowClosed = true;
           activeMovie.stop();
    });
...