Я использовал интеграцию медиа-плеера vl c в своем приложении android (libvl c). Я использую его для воспроизведения файлов RTSP в формате .ts. Я реализовал функцию, с помощью которой я могу воспроизводить записанные файлы, и она отлично работает только для воспроизведения, но я не могу искать через эти файлы, даже если они доступны для поиска в vl c настольная версия. Чтобы прояснить это, я проиграл этот поток в приложении vl c android, и все равно не могу найти его, затем я использовал приложение Mx player android и могу искать в этом файле. Есть ли способ сделать это в интеграции vl c для android?
private LibVLC libvlc;
private MediaController controller;
private void CreateMediaplayer(String url, TextureView textureview)
{
try {
ArrayList<String> options = new ArrayList<String>();
options.add("--rtsp-tcp");
options.add("-vvv"); // verbosity
/* options.add("--aout=opensles");
options.add("--audio-time-stretch"); // time stretching
options.add("--aout=opensles");
options.add("--avcodec-codec=h264");*/
controller = new MediaController(this.context);
controller.setMediaPlayer(playerinterface);
controller.setAnchorView(relativeLayout);
if(isFullscreen){
controller.show(100000);
}
libvlc = new LibVLC(this.context, options);
// Create media player
mMediaPlayer = new MediaPlayer(libvlc);
mMediaPlayer.setEventListener(this);
// Set up video output
final IVLCVout vout = mMediaPlayer.getVLCVout();
mMediaPlayer.setScale(0);
vout.detachViews();
vout.setVideoView(textureview);
vout.setWindowSize(textureview.getWidth(), textureview.getHeight());
vout.attachViews();
textureview.setKeepScreenOn(true);
Media m = new Media(libvlc, Uri.parse(url));
mMediaPlayer.setMedia(m);
mMediaPlayer.play();
progressBar.setVisibility(View.VISIBLE);
}catch(Exception e1)
{
progressBar.setVisibility(View.VISIBLE);
}
}
private MediaController.MediaPlayerControl playerinterface = new MediaController.MediaPlayerControl() {
@Override
public void start() {
// mMediaPlayer.pause();
}
@Override
public void pause() {
// mMediaPlayer.play();
}
@Override
public int getDuration() {
return 0;
//return (int)mMediaPlayer.getLength();
}
@Override
public int getCurrentPosition() {
return 0;
}
@Override
public void seekTo(int i) {
mMediaPlayer.setPosition((float)i);
mMediaPlayer.play();
}
@Override
public boolean isPlaying() {
return false;
}
@Override
public int getBufferPercentage() {
return 0;
}
@Override
public boolean canPause() {
return true;
}
@Override
public boolean canSeekBackward() {
return true;
}
@Override
public boolean canSeekForward() {
return true;
}
@Override
public int getAudioSessionId() {
return 0;
}
};