Java利用vlc实现视频信息输出控制台

1、废话不多说直接上代码,项目配置去找上篇博客

分享一波源码地址:https://github.com/caprica/vlcj

package test;



import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;

import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.discovery.NativeDiscovery;
import uk.co.caprica.vlcj.player.MediaPlayer;
import uk.co.caprica.vlcj.player.MediaPlayerEventAdapter;
import uk.co.caprica.vlcj.player.MediaPlayerFactory;
import uk.co.caprica.vlcj.player.TrackType;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
/**
 * 所属包:test<br>
 * 类名:TheMedia<br>
 * -------------------<br>
 * 描述:采集本地视频信息<br>
 * -------------------<br>
 * 日期:2018年11月21日<br>
 * 作者:cuixin
 */
public class TheMedia {
	
    private static final String NATIVE_LIBRARY_SEARCH_PATH = "F://VLC";
    private final static String mrl = "F:\\网易云下载目录\\MV\\2.mp4";
    
    public static void main(String[] args) throws Exception {
	  NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), NATIVE_LIBRARY_SEARCH_PATH);
      Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
      boolean discover = new NativeDiscovery().discover();
      
      MediaPlayerFactory factory = new MediaPlayerFactory();
      MediaPlayer mediaPlayer = factory.newHeadlessMediaPlayer();

      mediaPlayer.addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
          @Override
          public void videoOutput(MediaPlayer mediaPlayer, int newCount) {
              System.out.println("跟踪信息:" + mediaPlayer.getTrackInfo());
              //System.out.println("标题描述: " + mediaPlayer.getTitleDescriptions());
              System.out.println("视频描述: " + mediaPlayer.getVideoDescriptions());
              System.out.println("音频描述: " + mediaPlayer.getAudioDescriptions());
              for(int i = 0; i < mediaPlayer.getTitleDescriptions().size(); i ++ ) {
                  System.out.println("章节描述:" + i + ": " + mediaPlayer.getChapterDescriptions(i));
              }
              //System.out.println("扩展标题: " + mediaPlayer.getExtendedTitleDescriptions());
              //System.out.println("扩展章节: " + mediaPlayer.getExtendedChapterDescriptions());
          }
      });

      mediaPlayer.prepareMedia(mrl);

      mediaPlayer.parseMedia();


      try {
          Thread.sleep(3000);
      }
      catch(InterruptedException e) {
      }

      System.out.println("跟踪结束之前的信息: " + mediaPlayer.getTrackInfo());

      //System.out.println("未知的: " +  mediaPlayer.getTrackInfo(TrackType.UNKNOWN));
      System.out.println("音频信息: " +  mediaPlayer.getTrackInfo(TrackType.AUDIO));
      System.out.println("视频信息: " +  mediaPlayer.getTrackInfo(TrackType.VIDEO));
      //System.out.println("文本信息: " +  mediaPlayer.getTrackInfo(TrackType.TEXT));
      System.out.println("音频+视频: " +  mediaPlayer.getTrackInfo(TrackType.AUDIO, TrackType.VIDEO));

      mediaPlayer.stop();

      mediaPlayer.release();
      factory.release();
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值