2012-06-13 233 views
0

爲什麼MediaPlayer不能在視頻可用時立即顯示。我的意思是在視頻播放時,iPhone會立即顯示視頻。即使從暫停返回。但在Android上,屏幕會保持黑色幾秒到幾秒,具體取決於所使用的設備以及後臺運行的進程數。媒體播放器顯示視頻

我在問這個,因爲我想從我的視頻播放中使用其中一個起始幀作爲截圖類型,而目前我正在使用處理程序在暫停視頻前等待1秒鐘。

有人可以告訴我一個快速的方法,讓視頻在開始時甚至準備就緒,而不是我的解決方法嗎?

編輯: 這是我如何準備我的視頻播放器,因此它應該準備好。

private void initVideo() 
{ 
    Log.i("VideoPlayer", "Initialize Video File" + videoFileName); 

    AssetFileDescriptor afd; 
    try { 
     if(videoFileName != null); 
     { 

      afd = getAssets().openFd(videoFileName); 

      vidplayer = new MediaPlayer(); 

      vidplayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength()); 

      vidplayer.setDisplay(holder); 
      vidplayer.prepare(); 
      vidplayer.setOnCompletionListener(this); 
      vidplayer.setOnPreparedListener(this); 
      //Log.i("INITVIDEO", Integer.toString(videoPausedAt)); 
      vidplayer.seekTo(videoPausedAt); 
      //Log.i("VideoPlayer", "video Prepared"); 

      videoDuration = vidplayer.getDuration()/1000; 


      isVideoReady = true; 

     } 

    } catch (IllegalArgumentException e) { 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (Exception e) 
    { 
     //Log.i("InitPlayer", e.getClass().toString()); 
     e.printStackTrace(); 
    } 


} 

回答

0

我發現這是手機故障(主要是)視頻將自動顯示,除非手機停滯不前,因此視頻加載需要更長時間(在運行voip服務後注意)。

1

爲背景,你可以得到視頻的縮略圖:

private Bitmap getThumbnail(String path){ 
    try{ 
     return ThumbnailUtils.createVideoThumbnail(path, MediaStore.Images.Thumbnails.MINI_KIND); 

    }catch(Exception e){ 
     return null; 
    } 
} 

當視頻開始,你需要將背景設置恢復爲NULL,否則您將無法看視頻。

至於它沒有馬上播放,只要start()被調用,就應該儘快播放,但如果它必須加載數據,我們可以從互聯網上的數據流中加載數據。

+0

我會盡量使用這個,但我有我的視頻文件在我的資產文件夾。 – Raigex

相關問題