Android - Почему в моем приложении отображается экран «Невозможно воспроизвести видео» - PullRequest
0 голосов
/ 05 февраля 2012

что-то не так с кодом?Почему это не будет сыграно?

import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.MotionEvent;
import android.widget.VideoView;

public class Video extends Activity implements OnCompletionListener, OnPreparedListener {

        static private final String pathToFile ="com.chich.res.drawable-  hdpi.troopers.3gp";  // Video source file
       private VideoView videoPlayer;

       /** Called when the activity is first created. */
       @Override
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.video);


      videoPlayer = (VideoView) findViewById(R.id.videoPlayer);   
      videoPlayer.setOnPreparedListener(this);
      videoPlayer.setOnCompletionListener(this);
      videoPlayer.setKeepScreenOn(true);    
      videoPlayer.setVideoPath(pathToFile);
       }


       /** This callback will be invoked when the file is ready to play */
       @Override
       public void onPrepared(MediaPlayer vp) {


          if(videoPlayer.canSeekForward()) videoPlayer.seekTo(videoPlayer.getDuration()/5);
          videoPlayer.start();
        }

        /** This callback will be invoked when the file is finished playing */
        @Override
        public void onCompletion(MediaPlayer  mp) {
          // Statements to be executed when the video finishes.
          this.finish();    
        }

        /**  Use screen touches to toggle the video between playing and paused. */
        @Override
        public boolean onTouchEvent (MotionEvent ev){   
           if(ev.getAction() == MotionEvent.ACTION_DOWN){
              if(videoPlayer.isPlaying()){
                       videoPlayer.pause();
              } else {
                       videoPlayer.start();
              }
              return true;      
           } else {
               return false;
           }
        }
     }

1 Ответ

0 голосов
/ 05 февраля 2012

Я не думаю, что setVideoPath будет работать, если ваше видео является частью ресурсов ваших приложений. Используйте URI: Ссылаясь на ресурсы Android с помощью URI . Есть пример использования VideoView.

...