package helper;

import com.yanzuoguang.media.*;
import com.yanzuoguang.util.MediaHelper;
import com.yanzuoguang.util.YzgError;
import com.yanzuoguang.util.thread.ThreadHelper;
import org.junit.Test;

import java.io.File;


public class MediaFirstTest {

    private String getFile(String file) {
        // 注意,路径应为文件在工程中的相对路径
        File f = new File("src/test/java/helper/" + file);
        if (!f.exists()) {
            System.out.println(f.getAbsoluteFile());
            throw YzgError.getRuntimeException("005");
        }
        return f.getAbsolutePath();
    }


    private String getTargetFile(String file) {
        // 注意,路径应为文件在工程中的相对路径
        File f = new File(file);
        return f.getAbsolutePath();
    }

    @Test
    public void test() {
        MediaFirst first = new MediaFirst(null);

        MediaReqVo req = new MediaReqVo();
        req.setUrl("http://rtmp.tourbida.com/hls/f4c1444c-1b31-4de8-9bd9-7ff6a231e262.m3u8");
        req.setImageUrl(getTargetFile("target/xxx.jpg"));
        req.setCount(100);
        req.setSplit(1000);

        for (int i = 0; i < 1000; i++) {
            MediaResVo start = first.start(req);
            ThreadHelper.sleep(50 * 1000);
        }

        // 等待视频处理结束
        while (!first.isFinish(req)) {
            ThreadHelper.sleep(100);
        }
    }


    @Test
    public void testHlsDown() throws Exception {
        String targetFile = getTargetFile("target/downHls.mp4");
        HlsDownloader downloader = new HlsDownloader("http://rtmp.tourbida.com/hls/0bfbec86-7a75-4b70-9318-dd32a3d59633.m3u8",
                targetFile,
                1,
                1
        );
        downloader.download(false, true);
        // 获取视频第一帧
        MediaHelper.getVideoFirstImage(targetFile, targetFile + ".jpg");
    }
}