2014-01-26 36 views
0
import android.annotation.TargetApi; 
import android.app.Activity; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.media.MediaPlayer.OnPreparedListener; 
import android.os.Build; 
import android.os.Bundle; 
import android.os.Handler; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.VideoView; 


public class FullscreenActivity extends Activity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
           WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.activity_fullscreen); 



     VideoView vv1 = (VideoView) findViewById(R.id.fullscreen_content);  
      vv1.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.intro_video_part1); 
      vv1.start(); 


     vv1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      public void onCompletion(MediaPlayer mp) { 
       VideoView vv2 = (VideoView) findViewById(R.id.fullscreen_content);  
       vv2.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.intro_video_part2); 
       vv2.start(); 
      } 

     }); 

     vv2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      public void onCompletion(MediaPlayer mp) { 
       VideoView vv3 = (VideoView) findViewById(R.id.fullscreen_content);  
       vv3.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.intro_video_part3); 
       vv3.start(); 
      } 
     }); 


     vv3.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      public void onCompletion(MediaPlayer mp) { 
       VideoView vv4 = (VideoView) findViewById(R.id.fullscreen_content);  
       vv4.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.intro_video_part4); 
       vv4.start(); 
      } 

     }); 


     vv4.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      public void onCompletion(MediaPlayer mp) { 
       VideoView vv42 = (VideoView) findViewById(R.id.fullscreen_content);  
       vv42.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.intro_video_part4_2); 
       vv42.start(); 
      } 
     }); 


     vv42.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      public void onCompletion(MediaPlayer mp) { 
       VideoView vv5 = (VideoView) findViewById(R.id.fullscreen_content);  
       vv5.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.intro_video_part5); 
       vv5.start(); 
      } 
     }); 


    } 

} 

嘿大家的Android VideoView播放視頻解決不了

所以這是我在此刻具有代碼。基本上我想要的是連續顯示6個視頻。所以我起牀了,但現在他告訴我vv2(以及之後的每一秒)都無法解決。

我是Javascript初學者,所以我不知道這意味着什麼,只有我認爲他沒有該變量集導致其在onCompletion函數中定義。

那麼我怎樣才能從onCompletion中獲得vv2呢?

或者還有其他可能的方法嗎?也許一些循環與$ i ++?

回答

0

vv2和其他無法解析,因爲您在onCompletion方法中本地聲明它們。所以是的,你應該使用計數器或其他東西,然後用這種方式播放視頻。

public class FullscreenActivity extends Activity { 

    private int[] data = new int[]{R.raw.intro_video_part1, R.raw.intro_video_part2, 
    R.raw.intro_video_part3, R.raw.intro_video_part4, R.raw.intro_video_part5, R.raw.intro_video_part6}; 

    int counter = 0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
           WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.activity_fullscreen); 

    VideoView vv1 = (VideoView) findViewById(R.id.fullscreen_content);  
       vv1.setVideoPath("android.resource://" + getPackageName() + "/" + data[counter]); 
       vv1.start(); 

      vv1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
       public void onCompletion(MediaPlayer mp) { 
        counter++; 
        vv1.setVideoPath("android.resource://" + getPackageName() + "/" + data[counter]); 
        vv1.start(); 
       } 

      }); 
} 
+0

嘿,謝謝你的回答。我試過實現你的代碼,但是再次沒有運氣。 對於私人int []數據現在我得到錯誤,它是非法修飾符,只允許最終。然後對於裏面的所有東西(即counter ++,data [counter]和vv1)public void onCompletion它說:「不能引用在不同方法定義的內部類中的非最終變量」 – Jawaracing

+0

好吧,所以我假設你得到錯誤,因爲你沒有把字段放在適當的地方。我更新我的答案,以準確顯示應在哪些字段創建。它沒有經過測試,因此您應該將其作爲您嘗試完成的基礎。此外,它應該可以幫助您瞭解爲什麼您的原始方法無法正常工作。謝謝 – brwngrldev

+0

再次感謝你:) – Jawaracing