IJKPlayerView setting method Header playing video

 

 Found FIG play video connection station b

Https://github.com/Rukey7/IjkPlayerView connection using the library

When using this library to play video connection b station can not always play

B checked the station because video connection needs to be verified before they can refer player

But there is no library provides methods of setHeader, had to use the built-in reflector header set it up ...

The following is a method of written setHeader

 

public IjkPlayerView setHeader(IjkPlayerView playerView,String url,Map<String,String> header){
try{
Class playerViewClass=playerView.getClass();
Field videoViewField=playerViewClass.getDeclaredField("mVideoView");
videoViewField.setAccessible(true);
IjkVideoView videoView=(IjkVideoView)videoViewField.get(playerView);
Class videoViewClass=videoView.getClass();
Method setVideoURI=videoViewClass.getDeclaredMethod("setVideoURI",Uri.class,Map.class);
setVideoURI.setAccessible(true);
setVideoURI.invoke(videoView,Uri.parse(url),header);
videoViewField.set(playerView,videoView);
}catch(Exception e){
e.printStackTrace();
}
return playerView;
}

最好在PlayerView init()后设置

 

 实测还行

Guess you like

Origin www.cnblogs.com/xqher/p/12078364.html