0

私はの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秒間表示された後、消えます。この時間の後、しばらくの間黒い画面が表示され(ビデオは充電中です)、この時間の後、ビデオが始まります。誰かが私の間違いがどこにあるのか私を助けることができますか?

4

1 に答える 1

3

あなたの問題に対する1つの解決策は次のようになります:

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();
    });
于 2012-03-16T13:06:36.173 に答える