Ранее я задавал вопрос о том, как извлечь встроенный URL для видеофайла, и успешно это сделал.
Теперь у меня другая проблема.
Ответ json для ответа веб-камеры API WUnderground
дает следующий URL:
https://anime2001.com/episode/somali-to-mori-no-kamisama-%d8%a7%d9%84%d8%ad%d9%84%d9%82%d8%a9-2/
При попытке выполнить потоковую передачу «видео с этого URL в VideoView, я продолжал получать сообщение об ошибке« не могу воспроизвести видео ». Посмотрев источник по этой ссылке, я заметил, что видеофайл, который нужно воспроизвести, не указан в html, а скорее javascript.
Как получить прямую ссылку на видеофайл, который необходимо воспроизвести? Используя JSoup
или другой процесс?
public class VideoActivity extends AppCompatActivity {
private static final String TAG = "VideoActivity";
private RequestQueue mQuere;
private String url = "http://www.anime1.com/watch/darwins-game/episode-1";
private VideoView video;
private MediaController ctlr;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video);
video = (VideoView) findViewById(R.id.videoView);
video.setVisibility(View.INVISIBLE);
ctlr = new MediaController(this);
ctlr.setVisibility(View.INVISIBLE);
progressBar= findViewById(R.id.progressBar);
progressBar.setVisibility(View.VISIBLE);
mQuere = MySingleton.getInstance(this).getRequestQueue();
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
progressBar.setVisibility(View.INVISIBLE);
video.setVisibility(View.VISIBLE);
ctlr.setVisibility(View.VISIBLE);
String js = "";
Document document = Jsoup.parse(response);
Element divElement = document.getElementById("Movie");
for (Element javascript : divElement.children()) {
if (javascript.tagName().equals("script")) {
js = javascript.html();
}
}
int firstIndex = js.indexOf("\"", js.indexOf("file"));
int secondIndex = js.indexOf("\"", firstIndex + 1);
String videourl = js.substring(firstIndex + 1, secondIndex);
Uri uri= Uri.parse(videourl);
video.setVideoURI(uri);
ctlr.setAnchorView(video);
video.setMediaController(ctlr);
video.requestFocus();
video.start();
Log.e("items","title: " + videourl);
} catch (Exception e) {
e.printStackTrace();
}
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "error in connection");
}
});
MySingleton.getInstance(this).addToRequestQueue(stringRequest);
}
}