2016-05-14 68 views
0

我想設置循環條件和VideoView。這是我想要實現的。如何在Android中設置VideoView的循環條件

  1. 視頻開始並結束,如果編輯文本沒有被選中。
  2. 如果選擇Video Start和EditText,則Video設置爲循環。
  3. 如果用戶鍵入EditText並按下按鈕提交,則循環設置爲false,並且該活動在視頻完成後關閉。
  4. 如果EditText失去選擇,則視頻活動完成。

這裏是代碼,但它不是爲我工作

mVideoView.setVideoPath(phone); 
     mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() 

             { 
              @Override 
              public void onPrepared(final MediaPlayer mp) { 
               mVideoView.start(); 
               if (mVideoView.isPlaying()) { 
                mp.setLooping(false); 


               } 
              } 
             } 

     ); 

     CommentBox.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       if (hasFocus) { 
        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
         @Override 
         public void onCompletion(MediaPlayer mp) { 
          mp.setLooping(true); 
         } 
        }); 
       } 
      } 
     }); 

     mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 

              { 
               @Override 
               public void onCompletion(MediaPlayer mp1) { 
                finish(); 
               } 
              } 

     ); 
+0

公共束型我仍然感到困惑你的問題,你想達到什麼 –

回答

1

問題是你有沒有叫mediaplayer.start()後,你在onCompletionListener設置循環()。

我執行下面的代碼,它工作在這裏罰款

解決方案:

創建的變量

b=new Bundle(); 
    b.putBoolean("repeat", false); 
    v.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.ak)); 

    v.requestFocus(); 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if (txt.getText().toString().length() > 0) { 
       b.putBoolean("repeat", false); 
      } 
     } 
    }); 

txt.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
@Override 
public void onFocusChange(View view, boolean has) { 
    if (has) { 
     b.putBoolean("repeat", true); 

    } 
} 
}); 

v.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
@Override 
public void onCompletion(MediaPlayer mediaPlayer) { 
    if (b.getBoolean("repeat") == true) { 
     mediaPlayer.setLooping(true); 
     mediaPlayer.start(); 
      Toast.makeText(getApplicationContext(),String.valueOf(b.getBoolean("repeat")),Toast.LENGTH_LONG).show(); 
    } else { 
     mediaPlayer.setLooping(false); 
     mediaPlayer.stop(); 
     Toast.makeText(getApplicationContext(),String.valueOf(b.getBoolean("repeat")),Toast.LENGTH_LONG).show(); 
    } 
} 
}); 
     v.start(); 
+0

謝謝,但我明白了我自己! – Savita

+0

你碰巧知道如何刪除兩個布爾匹配時的文件? – Savita

+0

問題不清楚哪些布爾? –