wake-up-neo.com

so spielen Sie das Video von der URL ab

Ich bin ein Anfänger in der Android-Entwicklung und versuche, Video von Link abzuspielen. Aber es gibt Fehler "sorry,we can't play this video". Ich habe so viele Links ausprobiert, aber für alle Links wird der gleiche Fehler angezeigt.

Mein Code lautet wie folgt 

public class VideoDemo extends Activity {

        private static final String path ="http://demo.digi-corp.com/S2LWebservice/Resources/SampleVideo.mp4";
 private VideoView video;
 private MediaController ctlr;
 @Override
 public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            getWindow().setFormat(PixelFormat.TRANSLUCENT);
            setContentView(R.layout.videoview);

            video = (VideoView) findViewById(R.id.video);
            video.setVideoPath(path);

            ctlr = new MediaController(this);
            ctlr.setMediaPlayer(video);
            video.setMediaController(ctlr);
            video.requestFocus();
     }
}

Logcat zeigt folgende Fehlermeldung:

04-12 15:04:54.245: ERROR/PlayerDriver(554): HandleErrorEvent: PVMFErrTimeout
35
priyanka

Es hat etwas mit Ihrem Link und Inhalt zu tun. Versuchen Sie die folgenden zwei Links:

    String path="http://www.ted.com/talks/download/video/8584/talk/761";
    String path1="http://commonsware.com/misc/test2.3gp";

    Uri uri=Uri.parse(path1);

    VideoView video=(VideoView)findViewById(R.id.VideoView01);
    video.setVideoURI(uri);
    video.start();

Beginnen Sie mit "path1", es ist ein kleiner Videostream mit geringem Gewicht, und versuchen Sie es mit "path". Es ist eine höhere Auflösung als "path1", eine perfekte hohe Auflösung für das Mobiltelefon.

42
Win Myo Htet

Versuche dies:

String LINK = "type_here_the_link";
setContentView(R.layout.mediaplayer);
VideoView videoView = (VideoView) findViewById(R.id.video);
MediaController mc = new MediaController(this);
mc.setAnchorView(videoView);
mc.setMediaPlayer(videoView);
Uri video = Uri.parse(LINK);
videoView.setMediaController(mc);
videoView.setVideoURI(video);
videoView.start();
6
gtsiolis
pDialog = new ProgressDialog(this);

    // Set progressbar message
    pDialog.setMessage("Buffering...");
    pDialog.setIndeterminate(false);
    pDialog.setCancelable(false);
    // Show progressbar
    pDialog.show();

    try {
        // Start the MediaController
        MediaController mediacontroller = new MediaController(this);
        mediacontroller.setAnchorView(mVideoView);      

        Uri videoUri = Uri.parse(videoUrl);
        mVideoView.setMediaController(mediacontroller);
        mVideoView.setVideoURI(videoUri);

    } catch (Exception e) {

        e.printStackTrace();
    }

    mVideoView.requestFocus();
    mVideoView.setOnPreparedListener(new OnPreparedListener() {
        // Close the progress bar and play the video
        public void onPrepared(MediaPlayer mp) {
            pDialog.dismiss();
            mVideoView.start();
        }
    });
    mVideoView.setOnCompletionListener(new OnCompletionListener() {

        public void onCompletion(MediaPlayer mp) {
            if (pDialog.isShowing()) {
                pDialog.dismiss();
            }
            finish();               
        }
    });
6

Sie können dies mit FullscreenVideoView class tun. Es ist ein kleines Bibliotheksprojekt. Es ist ein Video-Fortschritt-Dialog eingebaut.

compile 'com.github.rtoshiro.fullscreenvideoview:fullscreenvideoview:1.1.0'

ihre VideoView-XML ist so

<com.github.rtoshiro.view.video.FullscreenVideoLayout
        Android:id="@+id/videoview"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent" />

Initialisieren Sie es in Ihrer Aktivität auf folgende Weise:

    FullscreenVideoLayout videoLayout;

videoLayout = (FullscreenVideoLayout) findViewById(R.id.videoview);
        videoLayout.setActivity(this);

        Uri videoUri = Uri.parse("YOUR_VIDEO_URL");
        try {
            videoLayout.setVideoURI(videoUri);

        } catch (IOException e) {
            e.printStackTrace();
        }

Das ist es. Viel Spaß beim Codieren :)

Wenn Sie mehr wissen wollen, besuchen Sie hier

Edit: Gradle-Pfad wurde aktualisiert. kompiliere es jetzt

compile 'com.github.rtoshiro.fullscreenvideoview:fullscreenvideoview:1.1.2'
5

Ich habe mich auch mit diesem Problem festgefahren. Ich habe die richtige Antwort vom Server erhalten, konnte aber kein Video abspielen. Nach langer Zeit fand ich eine Lösung hier . Vielleicht wird in Zukunft dieser Link ungültig sein. Hier ist mein korrekter Code 

    Uri video = Uri.parse("Your link should be in this place "); 
    mVideoView.setVideoURI(video); 

   mVideoView.setZOrderOnTop(true); //Very important line, add it to Your code
    mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
        @Override 
        public void onPrepared(MediaPlayer mediaPlayer) {
  // here write another part of code, which provides starting the video
  }}
1
user7856586

bitte überprüfen Sie diesen Link: http://developer.Android.com/guide/appendix/media-formats.html

videoview kann keinen Codec unterstützen.

Ich habe vorgeschlagen, Mediaplayer zu verwenden, wenn "Entschuldigung, Video kann nicht abgespielt werden"

1

Versuchen Sie es mit Exoplayer2

https://github.com/google/ExoPlayer

Es ist sehr anpassbar

    private void initializePlayer() {
         player = ExoPlayerFactory.newSimpleInstance(
             new DefaultRenderersFactory(this),
             new DefaultTrackSelector(), new DefaultLoadControl());

         playerView.setPlayer(player);

         player.setPlayWhenReady(playWhenReady);
         player.seekTo(currentWindow, playbackPosition);

Uri uri = Uri.parse(getString(R.string.media_url_mp3));
     MediaSource mediaSource = buildMediaSource(uri);
     player.prepare(mediaSource, true, false);
    }

private MediaSource buildMediaSource(Uri uri) {
  return new ExtractorMediaSource.Factory(
      new DefaultHttpDataSourceFactory("exoplayer-codelab")).
      createMediaSource(uri);
}

@Override
public void onStart() {
 super.onStart();
 if (Util.SDK_INT > 23) {
   initializePlayer();
 }
}

Überprüfen Sie diese URL für weitere Details

https://codelabs.developers.google.com/codelabs/exoplayer-intro/#2

0
Nudge