我们常常在网页上遇到好看的视频就想保存起来,可是有的视频文件是m3u8格式的,有的小伙伴可能就难住了,那么这种视频文件应该下载呢,可能有人会用插件或者其他工具下载,方法也是多种多样的,其实这种文件就是很多视频切片成的文件路径,不能够直接获取到视频流文件,需要解析然后才能下载,话不多说,直接上代码,下面我们就通过JAVA代码来实现!文章来源:https://www.toymoban.com/news/detail-743917.html
文章来源地址https://www.toymoban.com/news/detail-743917.html
1.代码主体部分(使用了多线程下载使速度更快,可根据自己来设置线程数量,并不是线程越多下载就越快,跟带宽和网速都有关系)
/**
* M3U8下载主体方法
* @param thread 线程数量
* @param strings M3U8 URL地址,可下载多个
* @throws Exception
*/
public void m3u8ByUrls(Integer thread,String...strings) throws Exception{
JPanel Root = new JPanel(new FlowLayout(FlowLayout.CENTER,0,10));
Root.setBackground(Color.WHITE);
Root.setPreferredSize(new Dimension(600,300));
JScrollPane pane = new JScrollPane(Root);
pane.setPreferredSize(new Dimension(600,300));
CompletableFuture.runAsync(()->JOptionPane.showMessageDialog(null,pane,"M3U8下载器",JOptionPane.INFORMATION_MESSAGE));
for (String urls : strings) {
if(urls==null || urls.length()<1)continue;
JPanel root = new JPanel(new FlowLayout(FlowLayout.LEFT,5,10));
root.setPreferredSize(new Dimension(550,110));
//root.setBackground(Color.WHITE);
JComponent[] components = Stream.of("标题","分片","进度条","网速")
.map(a->{
if(a.matches("(标题|网速|分片)")){
JLabel label = new JLabel(a);
root.add(label);
label.setFont(font);
label.setPreferredSize(new Dimension(Objects.equals("网速",a)?400:260,30));
return label;
}JProgressBar bar = new JProgressBar();
root.add(bar);
bar.setPreferredSize(new Dimension(540,10));
bar.
到了这里,关于如何使用JAVA实现多线程下载m3u8视频并且合并代码亲测有效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!