在 Android 中将动态程序 ID (sid) 设置为 LibVLC

Setting dynamically program ID (sid) to LibVLC in Android

在我的 Android 应用程序中,我使用 libvlc 3.1.1 读取 DVB 流。 因此,我构建了指定参数的 LibVLC,构建了 MediaPlayer,并从对应于我的 DVB 流的 URI 构建了媒体。

这是有效的。现在我想在创建 VLCLib 后动态设置 SID(“--program=769”),以避免加载繁重的库。 有什么想法吗?

我阅读了这份文档: https://wiki.videolan.org/Documentation:Advanced_Use_of_VLC/

    final ArrayList<String> args = new ArrayList<>();
    args.add("--video-filter=deinterlace");
    args.add("--aout=opensles");
    args.add("--deinterlace=-1");
    args.add("--sout-deinterlace-mode=bob");
    args.add("--vbi-opaque");
   // args.add("--program=769"); -> That is working
    mLibVLC = new LibVLC(this, args);
    mMediaPlayer = new MediaPlayer(mLibVLC);
    mMediaPlayer.setEventListener(event -> {
        ...
    }
    final IVLCVout vlcVout = mMediaPlayer.getVLCVout();
    vlcVout.setVideoView(mVideoSurface);
    vlcVout.setSubtitlesView(mSubtitlesSurface);
    mMediaPlayer.getVLCVout().attachViews(this);

    [...]

    if (mMediaPlayer.isPlaying()) {
        mMediaPlayer.stop();
    }
    final Media media = new Media(mLibVLC, uri);
   // There, I would like to set the SID(=program number)

    media.setHWDecoderEnabled(true, false);
    mMediaPlayer.setMedia(media);
    mMediaPlayer.play();
    media.release();

我想你可以将其设置为媒体选项:

media.addOption(":program=769");