2012-03-16 6 views
0

Android 앱에서 Titanium으로 작업 중입니다. 특정 화면에서 링크에서 비디오를 재생해야합니다. 충전하려면 약간의 시간이 걸리므로 동영상이 시작될 때까지 ProgressDialog을 넣어야합니다. 나는 이런 식으로, 이것에 대한 ActivityIndicator를 사용하려고 :티타늄에 비디오를로드하기 전에 ProgressDialog

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 초를 표시하고 사라지게. 이 시간이 지나면 검은 화면이 나타나고 (비디오가 충전 중임)이 시간이 지나면 비디오가 시작됩니다. 누군가 내 실수를 어디에서 도울 수 있습니까?

답변

3

한 문제에 대한 해결책이 될 수 있습니다

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