0

У меня есть два вида деятельности. Основное Activity.java и VideoViewActivity.java Я записываю видео, а затем создаю растровое изображение и сохраняю его в arraylist в Main Activity.java, тогда я прохожу мимо видеофайл (т. е. записанное видео) в VideoViewActivity, и там я пытаюсь воспроизвести видео в видео. когда я нажимаю на миниатюру она должна воспроизводить видео в VideoViewActivity но приложение рушится, когда я нажимаю на thumbnail.Where и то, что я делаю не так ?? Помогите plsss ..как воспроизвести записанное видео с использованием видеорекламы в другом виде

MainActivity

private List<Bitmap> bitMapsAvailable = new ArrayList<>();//Bitmaps of video files 
    private List<String> bitMapsFilePath = new ArrayList<>();//video files path 



private void showThumbnails() { 

    LinearLayout layout = (LinearLayout) findViewById(R.id.thumbnails); 

    bitMapIndex = 0; 
    if (layout.getChildCount() > 0) { 
     layout.removeAllViews(); 
    } 
    for (Bitmap eachBitMap : bitMapsAvailable) { 

     bitMapIndex++; 
     ImageView thumb = new ImageView(this); 
     thumb.setId(new Integer(bitMapIndex+ 17)); 
     thumb.setLayoutParams(new android.view.ViewGroup.LayoutParams(100, 80)); 
     thumb.setImageBitmap(eachBitMap); 

     thumb.setOnClickListener(previewThumb(thumb)); 
     layout.addView(thumb); 

     CheckBox deleteCheckBox = new CheckBox(this); 
     deleteCheckBox.setId(new Integer(bitMapIndex)); 

     deleteCheckBox.bringToFront(); 
     deleteCheckBox.setOnClickListener(deleteRelatedThumbnail(deleteCheckBox)); 

     layout.addView(deleteCheckBox); 

     CheckBox saveCheckBox = new CheckBox(this); 
     saveCheckBox.setId(new Integer(bitMapIndex + 31)); 
     saveCheckBox.bringToFront(); 

     saveCheckBox.setOnClickListener(saveRelatedThumbnail(saveCheckBox)); 
     layout.addView(saveCheckBox); 

     String("check").concat(new Integer(checkTagNumber++).toString())); 

    } 
} 
View.OnClickListener previewThumb(final ImageView imageview) { 

    return new View.OnClickListener() { 
     public void onClick(View arg0) { 

      int index = imageview.getId()-18; 


      Intent myIntent = new Intent(MainActivity.this, 
        VideoViewActivity.class); 
       findViewById(R.id.VideoView); 
      Bundle bundle = new Bundle(); 

      //Add your data to bundle 
      bundle.putString("url", bitMapsFilePath.get(index)); 
      myIntent.putExtras(bundle); 
      startActivity(myIntent); 


     } 
    }; 
} 

VideoViewActivity

public class VideoViewActivity extends Activity { 

    public VideoView videoview; 

    Bundle bundle = getIntent().getExtras(); 
    String videoURL = bundle.getString("url"); 

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

     setContentView(R.layout.videoview_main); 

     videoview = (VideoView) findViewById(R.id.VideoView); 

     Toast.makeText(this, videoURL, Toast.LENGTH_SHORT).show(); 

     try { 
      // Start the MediaController 
      MediaController mediacontroller = new MediaController(
        VideoViewActivity.this); 
      mediacontroller.setAnchorView(videoview); 
      // Get the URL from String VideoURL 
      Uri video = Uri.parse(videoURL); 
      videoview.setMediaController(mediacontroller); 
      videoview.setVideoURI(video); 

     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 

     videoview.requestFocus(); 
     videoview.setOnPreparedListener(new OnPreparedListener() { 
      // Close the progress bar and play the video 
      public void onPrepared(MediaPlayer mp) { 

       videoview.start(); 
      } 
     }); 

    } 

} 

ответ

0
Bundle bundle = getIntent().getExtras(); 
    String videoURL = bundle.getString("url"); 

передачи эти две линии внутри onCreate() метод в VideoViewActivity

0

Вы можете воспроизводить видео, просто используя приведенный ниже код в своем другом действии.

Uri uri = Uri.parse(URL); //Declare your url here. 

VideoView mVideoView = (VideoView)findViewById(R.id.videoview) 
mVideoView.setMediaController(new MediaController(this));  
mVideoView.setVideoURI(uri); 
mVideoView.requestFocus(); 
mVideoView.start(); 
+0

да ... но я я передавая значение от одного вида деятельности к другому правильно ?? – user7328722

+0

Да, просто передайте свой Путь видео в другую деятельность, используя пучок или передайте намерение. – Naitik

+0

взгляните на эту тему, http://stackoverflow.com/questions/8017374/how-to-pass-a-uri-to-an-intent –

0

НУ не может getIntent() до OnCreate() - там просто нет Намерения доступно в этой точке. Изменить код на что-то вроде этого:

public class VideoViewActivity extends Activity { 

public VideoView videoview; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.videoview_main); 
    videoview = (VideoView) findViewById(R.id.VideoView); 
    Toast.makeText(this, videoURL, Toast.LENGTH_SHORT).show(); 

    Bundle bundle = getIntent().getExtras(); 
    String videoURL = bundle.getString("url"); 

    try { 
     // Start the MediaController 
     MediaController mediacontroller = new MediaController(
       VideoViewActivity.this); 
     mediacontroller.setAnchorView(videoview); 
     // Get the URL from String VideoURL 
     Uri video = Uri.parse(videoURL); 
     videoview.setMediaController(mediacontroller); 
     videoview.setVideoURI(video); 

    } catch (Exception e) { 
     Log.e("Error", e.getMessage()); 
     e.printStackTrace(); 
    } 

    videoview.requestFocus(); 
    videoview.setOnPreparedListener(new OnPreparedListener() { 
     // Close the progress bar and play the video 
     public void onPrepared(MediaPlayer mp) { 

      videoview.start(); 
     } 
    }); 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^