Android/VideoView/ダウンロード
提供: 初心者エンジニアの簡易メモ
サンプル
class VideoDownloaderConnection extends AsyncTask<Void, Long, Boolean> { private String TAG = "VideoDownloaderConnection"; private Context context; String url = ""; public VideoDownloaderConnection(Context context) { this.context = context; } public void setUrl(String url) { this.url = url; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Boolean doInBackground(Void... params) { URL u = null; InputStream is = null; try { u = new URL(url); is = u.openStream(); HttpURLConnection huc = (HttpURLConnection)u.openConnection(); int size = huc.getContentLength(); if(huc != null) { String fileName = "FILE.mp4"; String storagePath = context.getExternalCacheDir().toString(); File f = new File(storagePath,fileName); FileOutputStream fos = new FileOutputStream(f); byte[] buffer = new byte[1024]; int len1 = 0; if(is != null) { while ((len1 = is.read(buffer)) > 0) { fos.write(buffer,0, len1); } } if(fos != null) { fos.close(); } } } catch (MalformedURLException mue) { mue.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { try { if(is != null) { is.close(); } } catch (IOException ioe) { } } return true; } @Override protected void onProgressUpdate(Long... values) { super.onProgressUpdate(values); } @Override protected void onPostExecute(Boolean aBoolean) { super.onPostExecute(aBoolean); Log.i(TAG, "onPostExecute"); } }
上記サンプルDLの使い方
VideoDownloaderConnection connection = new VideoDownloaderConnection(MainActivity.this.getApplicationContext()); connection.setUrl("~.mp4"); connection.execute();
ストレージをcachedirとしているがいろいろ変更できる
String storagePath = context.getExternalCacheDir().toString(); // cachedir String storagePath = Environment.getExternalStorageDirectory().toString(); // sdcard
参考:http://blog.lciel.jp/blog/2014/02/08/android-about-storage/
上記DLしたmp4のvideoViewでの再生
mVideoView.setVideoPath(getApplicationContext().getExternalCacheDir().toString() + "/FILE.mp4");
参考
動画のダウンロード https://blog.engineer.adways.net/entry/2016/09/03/010627
Webview download/cache video https://stackoverflow.com/questions/23876103/webview-download-cache-video
YoutubeDownloadMp4 https://stackoverflow.com/questions/7203047/code-for-download-video-from-youtube-on-java-android