Android получает путь от источника видео от VideoView

У меня есть экземпляр VideoView. Мне нужно знать путь источника видео.

Является ли это возможным? Кто-нибудь может мне помочь?

Мой код из класса WebChromeClient:

@Override public void onShowCustomView(final View view, final CustomViewCallback callback) { super.onShowCustomView(view, callback); if (view instanceof FrameLayout) { final FrameLayout frame = (FrameLayout) view; if (frame.getFocusedChild() instanceof VideoView) { // get video view video = (VideoView) frame.getFocusedChild(); } } } 

Как получить видеопоток источника видеофрагмента ?

VideoView не имеет геттеров для видео-пути / Uri. Ваше единственное изменение – использовать отражение. Ури хранится в private Uri mUri . Для доступа к нему вы можете использовать:

 Uri mUri = null; try { Field mUriField = VideoView.class.getDeclaredField("mUri"); mUriField.setAccessible(true); mUri = (Uri)mUriField.get(video); } catch(Exception e) {} 

Просто имейте в виду, что частное поле может быть изменено в будущих выпусках Android.

Вы можете переопределить setVideoUriMethod в VideoView если вам не нравятся частные методы:

 public class MyVideoView extends VideoView { Uri uri; @Override public void setVideoURI (Uri uri) { super.setVideoURI(uri); this.uri = uri; } } 

Теперь вы можете получить доступ к uri видеоизображения по мере необходимости. Надеюсь, это поможет.

Другой альтернативой было бы установить видео Uri / path на тег представления и получить позже.

Когда вы играете / начинаете

 videoView.setVideoPath(localPath); videoView.setTag(localPath); 

Когда вы хотите проверить, что играет

 String pathOfCurrentVideoPlaying = (String)videoView.getTag(); 

Не забудьте очистить тег при использовании в адаптере.