M3U8Manger icon indicating copy to clipboard operation
M3U8Manger copied to clipboard

可以断点续传吗

Open marscl opened this issue 7 years ago • 13 comments

有个错误 java.lang.NumberFormatException: For input string: "http://vali.cp31.ott.cibntv.net/657336C1E3B4571B1153A6E28/0300011501576AD30D0029132629A1DFA5FB02-87CA-5E89-7D82-FF5862B03A33.flv.ts?sid=050260411822420e45e55_01&sign=2ed144f976fbdd7c0770ee747e361395&ctype=50&ts_start=0.0&ts_end=11" at java.lang.Long.parseLong(Long.java:443) at java.lang.Long.parseLong(Long.java:485) at com.hdl.m3u8.bean.M3U8Ts.getLongDate(M3U8Ts.java:44) at com.hdl.m3u8.bean.M3U8.getStartTime(M3U8.java:63) at com.hdl.m3u8.utils.MUtils.getLimitM3U8Ts(MUtils.java:125) at com.hdl.m3u8.M3U8Manger.download(M3U8Manger.java:284) at com.hdl.m3u8.M3U8Manger.access$1000(M3U8Manger.java:26) at com.hdl.m3u8.M3U8Manger$3.run(M3U8Manger.java:195)

marscl avatar Aug 13 '17 06:08 marscl

下载地址: http://qtv.soshane.com/youku.php?vid=OK0MmL3R93G/NqkCFv076tZqUjEvo2V5qzkjmHC00nY=&tudou=0&tv=&db=

marscl avatar Aug 13 '17 06:08 marscl

v2.x之后可以断点续传哦

huangdali avatar Aug 14 '17 09:08 huangdali

@marscl 目前只支持ts文件名字为"时间戳.ts"格式的哦,其他格式的建议下载源码修改一下解析规则即可

huangdali avatar Aug 14 '17 09:08 huangdali

好的 谢谢

marscl avatar Aug 15 '17 02:08 marscl

直接合并好像不能播放

marscl avatar Aug 18 '17 09:08 marscl

文件名字的后缀必须是ts哦

huangdali avatar Aug 18 '17 09:08 huangdali

只能播放1分钟左右,总的时间会显示有130分钟,实际时间为40分钟

marscl avatar Aug 18 '17 10:08 marscl

setClearTempDir用这个设置不清楚临时目录,去sd卡里面的m3u8temp中看看文件是否下载成功

huangdali avatar Aug 18 '17 10:08 huangdali

文件全部下载了,单个视频都可以播放。

marscl avatar Aug 18 '17 10:08 marscl

网上说要搭本地服务器啥的。

marscl avatar Aug 18 '17 10:08 marscl

合并用的是这段代码哦,我这面是没有问题的,你可以手动调用这个合并你一下临时文件里面的ts,或者自己写一个合并的方法看看合并之后是否还有问题

  /**
     * 将M3U8对象的所有ts切片合并为1个
     *
     * @param m3u8
     * @param tofile
     * @throws IOException
     */
    public static void merge(M3U8 m3u8, String tofile, String basePath) throws IOException {
        List<M3U8Ts> mergeList = getLimitM3U8Ts(m3u8);
        File saveFile = new File(tofile);
        FileOutputStream fos = new FileOutputStream(saveFile);
        File file;
        for (M3U8Ts ts : mergeList) {
            file = new File(basePath, ts.getFile());
            if (file.isFile() && file.exists()) {
                IOUtils.copyLarge(new FileInputStream(file), fos);
            }
        }
        fos.close();
    }

huangdali avatar Aug 18 '17 10:08 huangdali

搭建本地服务器是另一种实现方式了,我用的是合并

huangdali avatar Aug 18 '17 10:08 huangdali

谢谢了,还是没解决,可能是下载的视频问题

marscl avatar Aug 18 '17 11:08 marscl