我有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。你唯一的机会就是使用反射。 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();
如果在适配器中使用,请记住清除标签。