Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过视频链接在Android中播放视频_Java_Android_Video_Video Streaming - Fatal编程技术网

Java 如何通过视频链接在Android中播放视频

Java 如何通过视频链接在Android中播放视频,java,android,video,video-streaming,Java,Android,Video,Video Streaming,如何通过传递任何视频链接(例如-“”或其他媒体门户的另一个视频链接)在Android中播放视频。我试图这样做,但我得到了一个错误 我的代码 try { if (!mVideoView.isPlaying()) { Uri uri = Uri.parse(videoURL); mVideoView.setVideoURI(uri); mVideoV

如何通过传递任何视频链接(例如-“”或其他媒体门户的另一个视频链接)在Android中播放视频。我试图这样做,但我得到了一个错误

我的代码

try {
                if (!mVideoView.isPlaying()) {
                    Uri uri = Uri.parse(videoURL);
                    mVideoView.setVideoURI(uri);
                    mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                        @Override
                        public void onCompletion(MediaPlayer mp) {

                        }
                    });
                } else {
                    mVideoView.pause();
                }
            }catch (Exception ex){

            }
            mVideoView.requestFocus();
            mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mProgressDialog.dismiss();
                    mp.setLooping(true);
                    mVideoView.start();
                }
            });
错误


您提供的是页面url,而不是视频url。这一个对我有用。请尝试此url


您可以尝试使用此代码
片段。我在我的应用程序中使用此代码以
横向
模式播放视频

package xyz.abc.package;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.VideoView;

public class FullVideo extends Activity {

    ProgressDialog pDialog;
    VideoView videoview;
    private int position = 0;
    String videoUrl, imageUrl, cid;

     private MediaController mediaControls;

    @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.full_video);

        videoUrl = "https://youtu.be/SiD77g9KfhA"

        if (mediaControls == null) {
            mediaControls = new MediaController(FullVideo.this);
        }

        videoview = (VideoView) findViewById(R.id.videoView);
        // Execute StreamVideo AsyncTask

        // Create a progressbar
        pDialog = new ProgressDialog(FullVideo.this);
        // Set progressbar title
        pDialog.setTitle("Streaming video, please wait.");
        // Set progressbar message
        pDialog.setMessage("Buffering...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(false);
        // Show progressbar
        pDialog.show();

        try {

            mediaControls.setAnchorView(videoview);
            // Get the URL from String VideoURL
            Uri video = Uri.parse(videoUrl);
            videoview.setMediaController(mediaControls);
            // mediaControls.setMediaPlayer(videoview);
            videoview.setVideoURI(video);

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

        videoview.setOnPreparedListener(new OnPreparedListener() {
            // Close the progress bar and play the video
            public void onPrepared(MediaPlayer mp) {
                pDialog.dismiss();
                videoview.requestFocus();
                videoview.seekTo(position);
                if (position == 0) {
                    videoview.start();                  
                } else {
                    videoview.pause();
                }
            }
        });

        videoview.setOnCompletionListener(new OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
                // TODO Auto-generated method stub
                finish();

            }
        });

    }

    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
            finish();

    }

    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }

    @Override
    protected void onRestart() {
        // TODO Auto-generated method stub
        super.onRestart();
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        // TODO Auto-generated method stub
        super.onSaveInstanceState(outState);
        outState.putInt("Position", videoview.getCurrentPosition());
        videoview.pause();

    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onRestoreInstanceState(savedInstanceState);
        position = savedInstanceState.getInt("Position");
        videoview.seekTo(position);
    }

}

您应该设置直接链接到视频(而不是带有视频的页面的链接)。您应该提供stacktrace,而不是它的屏幕截图。@我添加的DeKaNszn链接不是直接链接到视频?@Vaniusha否,直接链接(例如)应为
http://example.com/video.mp4
@DeKaNszn那么我怎样才能从youtube视频中获得这个直接链接呢?(或其他媒体门户)是的,现在它可以工作了。但是我如何获得这样的直接链接,例如从youtube上的任何视频?keepvid.com在这里你可以获得直接url。你也可以通过从台式机或笔记本电脑上的移动站点下载视频来获得直接url。对于youtube,你可以右键单击视频并选择“复制视频url”。我在尝试运行我的应用程序时出错代码为“”的应用程序无法运行,我在url“”上以及您已经编写的应用程序上进行了尝试。出现错误,请稍后再试。