使用Android中的视频播放播放URL视频



嗨,我是我的应用程序中的新手,我正在使用视频播放URL视频

但是使用下面的代码URL视频无法正确缓冲并坚持玩请帮助我如何完美地播放URL视频,而Out stuck

需要遵循异步过程,然后用一些代码向我解释

代码: -

public class MainActivity extends AppCompatActivity {
    ProgressBar progressBar = null;
    VideoView mVideoView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        progressBar = (ProgressBar) findViewById(R.id.progressbar);
        mVideoView = (VideoView) findViewById(R.id.videoView1);
        progressBar.setVisibility(View.VISIBLE);
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(mVideoView);
        Uri video = Uri.parse("http://www.ebookfrenzy.com/android_book/movie.mp4");
        mVideoView.setMediaController(mediaController);
        mVideoView.setVideoURI(video);
        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            public void onPrepared(MediaPlayer arg0) {
                progressBar.setVisibility(View.GONE);
                mVideoView.start();
            }
        });
    }
}

您可以尝试一下,您错过了请求focus

public class MainActivity extends AppCompatActivity {
    ProgressBar progressBar = null;
    VideoView mVideoView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        progressBar = (ProgressBar) findViewById(R.id.progressbar);
        mVideoView = (VideoView) findViewById(R.id.videoView1);
        progressBar.setVisibility(View.VISIBLE);
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(mVideoView);
        Uri video = Uri.parse("http://www.ebookfrenzy.com/android_book/movie.mp4");
        mVideoView.setMediaController(mediaController);
        mVideoView.setVideoURI(video);
       // Request focus was missing         
        videoview.requestFocus();
        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            public void onPrepared(MediaPlayer arg0) {
                progressBar.setVisibility(View.GONE);
                mVideoView.start();
            }
        });
    } }

我的建议是第一次下载视频,如下所示,

我的建议是第一次下载视频,如下所示,

    import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Environment;
import android.util.Log;

public class VideoSaveSDCARD extends Activity{
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ProgressBack PB = new ProgressBack();
        PB.execute("");
    }
    private class ProgressBack extends AsyncTask<String,String,String> {
         ProgressDialog PD;
        @Override
        protected void onPreExecute() {
            PD= ProgressDialog.show(LoginPage.this,null, "Please Wait ...", true);
            PD.setCancelable(true);
        }
        @Override
        protected void doInBackground(String... arg0) {
        downloadFile("http://beta-vidizmo.com/hilton.mp4","Sample.mp4");            
        }
        protected void onPostExecute(Boolean result) {
            PD.dismiss();
        }
    }

    private void downloadFile(String fileURL, String fileName) {
        try {
        String rootDir = Environment.getExternalStorageDirectory()
                + File.separator + "Video";
           File rootFile = new File(rootDir);
           rootFile.mkdir();
            URL url = new URL(fileURL);
            HttpURLConnection c = (HttpURLConnection) url.openConnection();
            c.setRequestMethod("GET");
            c.setDoOutput(true);
            c.connect();
            //Updated Code.
            File videoFile = new File(rootFile, fileName); // always maintain single Video File.
            if(videoFile.exists())//check already exists
                videoFile.delete();// then delete it.
            FileOutputStream f = new FileOutputStream();
            InputStream in = c.getInputStream();
            byte[] buffer = new byte[1024];
            int len1 = 0;
            while ((len1 = in.read(buffer)) > 0) {
                f.write(buffer, 0, len1);
            }
            f.close();
    } catch (IOException e) {
        Log.d("Error....", e.toString());
    }
}

然后开始从外部存储播放

最新更新