You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					191 lines
				
				4.6 KiB
			
		
		
			
		
	
	
					191 lines
				
				4.6 KiB
			| 
								 
											6 months ago
										 
									 | 
							
								<!DOCTYPE html>
							 | 
						||
| 
								 | 
							
								<html lang="en">
							 | 
						||
| 
								 | 
							
								<head>
							 | 
						||
| 
								 | 
							
								    <meta charset="UTF-8">
							 | 
						||
| 
								 | 
							
								    <title>Title</title>
							 | 
						||
| 
								 | 
							
								    <script src="./jessibuca.js"></script>
							 | 
						||
| 
								 | 
							
								    <style>
							 | 
						||
| 
								 | 
							
								        .root {
							 | 
						||
| 
								 | 
							
								            display: flex;
							 | 
						||
| 
								 | 
							
								            place-content: center;
							 | 
						||
| 
								 | 
							
								            margin-top: 3rem;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        .container-shell {
							 | 
						||
| 
								 | 
							
								            backdrop-filter: blur(5px);
							 | 
						||
| 
								 | 
							
								            background: hsla(0, 0%, 50%, 0.5);
							 | 
						||
| 
								 | 
							
								            padding: 30px 4px 10px 4px;
							 | 
						||
| 
								 | 
							
								            /* border: 2px solid black; */
							 | 
						||
| 
								 | 
							
								            width: auto;
							 | 
						||
| 
								 | 
							
								            position: relative;
							 | 
						||
| 
								 | 
							
								            border-radius: 5px;
							 | 
						||
| 
								 | 
							
								            box-shadow: 0 10px 20px;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        .container-shell:before {
							 | 
						||
| 
								 | 
							
								            content: "jessibuca demo player";
							 | 
						||
| 
								 | 
							
								            position: absolute;
							 | 
						||
| 
								 | 
							
								            color: darkgray;
							 | 
						||
| 
								 | 
							
								            top: 4px;
							 | 
						||
| 
								 | 
							
								            left: 10px;
							 | 
						||
| 
								 | 
							
								            text-shadow: 1px 1px black;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        #container {
							 | 
						||
| 
								 | 
							
								            background: rgba(13, 14, 27, 0.7);
							 | 
						||
| 
								 | 
							
								            width: 640px;
							 | 
						||
| 
								 | 
							
								            height: 398px;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        .input {
							 | 
						||
| 
								 | 
							
								            display: flex;
							 | 
						||
| 
								 | 
							
								            margin-top: 10px;
							 | 
						||
| 
								 | 
							
								            color: white;
							 | 
						||
| 
								 | 
							
								            place-content: stretch;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        .input2 {
							 | 
						||
| 
								 | 
							
								            bottom: 0px;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        .input input {
							 | 
						||
| 
								 | 
							
								            flex: auto;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        .err {
							 | 
						||
| 
								 | 
							
								            position: absolute;
							 | 
						||
| 
								 | 
							
								            top: 40px;
							 | 
						||
| 
								 | 
							
								            left: 10px;
							 | 
						||
| 
								 | 
							
								            color: red;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        .option {
							 | 
						||
| 
								 | 
							
								            position: absolute;
							 | 
						||
| 
								 | 
							
								            top: 4px;
							 | 
						||
| 
								 | 
							
								            right: 10px;
							 | 
						||
| 
								 | 
							
								            display: flex;
							 | 
						||
| 
								 | 
							
								            place-content: center;
							 | 
						||
| 
								 | 
							
								            font-size: 12px;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        .option span {
							 | 
						||
| 
								 | 
							
								            color: white;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        .page {
							 | 
						||
| 
								 | 
							
								            background: url('./bg.jpg');
							 | 
						||
| 
								 | 
							
								            background-repeat: no-repeat;
							 | 
						||
| 
								 | 
							
								            background-position: top;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        @media (max-width: 720px) {
							 | 
						||
| 
								 | 
							
								            #container {
							 | 
						||
| 
								 | 
							
								                width: 90vw;
							 | 
						||
| 
								 | 
							
								                height: 52.7vw;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    </style>
							 | 
						||
| 
								 | 
							
								</head>
							 | 
						||
| 
								 | 
							
								<body class="page">
							 | 
						||
| 
								 | 
							
								<div class="root">
							 | 
						||
| 
								 | 
							
								    <div class="container-shell">
							 | 
						||
| 
								 | 
							
								        <div id="container"></div>
							 | 
						||
| 
								 | 
							
								        <div class="input">
							 | 
						||
| 
								 | 
							
								            <div>输入URL:</div>
							 | 
						||
| 
								 | 
							
								            <input
							 | 
						||
| 
								 | 
							
								                autocomplete="on"
							 | 
						||
| 
								 | 
							
								                id="playUrl"
							 | 
						||
| 
								 | 
							
								                value=""
							 | 
						||
| 
								 | 
							
								            />
							 | 
						||
| 
								 | 
							
								            <button id="play">播放</button>
							 | 
						||
| 
								 | 
							
								            <button id="pause" style="display: none">停止</button>
							 | 
						||
| 
								 | 
							
								        </div>
							 | 
						||
| 
								 | 
							
								        <div class="input" style="line-height: 30px">
							 | 
						||
| 
								 | 
							
								            <button id="destroy">销毁</button>
							 | 
						||
| 
								 | 
							
								        </div>
							 | 
						||
| 
								 | 
							
								    </div>
							 | 
						||
| 
								 | 
							
								</div>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script>
							 | 
						||
| 
								 | 
							
								    var $player = document.getElementById('play');
							 | 
						||
| 
								 | 
							
								    var $pause = document.getElementById('pause');
							 | 
						||
| 
								 | 
							
								    var $playHref = document.getElementById('playUrl');
							 | 
						||
| 
								 | 
							
								    var $container = document.getElementById('container');
							 | 
						||
| 
								 | 
							
								    var $destroy = document.getElementById('destroy');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var showOperateBtns = false; // 是否显示按钮
							 | 
						||
| 
								 | 
							
								    var forceNoOffscreen = true; //
							 | 
						||
| 
								 | 
							
								    var jessibuca = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function create() {
							 | 
						||
| 
								 | 
							
								        jessibuca = null;
							 | 
						||
| 
								 | 
							
								        jessibuca = new Jessibuca({
							 | 
						||
| 
								 | 
							
								            container: $container,
							 | 
						||
| 
								 | 
							
								            videoBuffer: 0.2, // 缓存时长
							 | 
						||
| 
								 | 
							
								            isResize: false,
							 | 
						||
| 
								 | 
							
								            text: "",
							 | 
						||
| 
								 | 
							
								            loadingText: "",
							 | 
						||
| 
								 | 
							
								            useMSE: false,
							 | 
						||
| 
								 | 
							
								            debug: true,
							 | 
						||
| 
								 | 
							
								            showBandwidth: showOperateBtns, // 显示网速
							 | 
						||
| 
								 | 
							
								            operateBtns: {
							 | 
						||
| 
								 | 
							
								                fullscreen: showOperateBtns,
							 | 
						||
| 
								 | 
							
								                screenshot: showOperateBtns,
							 | 
						||
| 
								 | 
							
								                play: showOperateBtns,
							 | 
						||
| 
								 | 
							
								                audio: false,
							 | 
						||
| 
								 | 
							
								                recorder: false
							 | 
						||
| 
								 | 
							
								            },
							 | 
						||
| 
								 | 
							
								            forceNoOffscreen: forceNoOffscreen,
							 | 
						||
| 
								 | 
							
								            isNotMute: false,
							 | 
						||
| 
								 | 
							
								        },);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        jessibuca.on('audioInfo', function (audioInfo) {
							 | 
						||
| 
								 | 
							
								            console.log('audioInfo',audioInfo);
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        jessibuca.on('videoInfo', function (videoInfo) {
							 | 
						||
| 
								 | 
							
								            console.log('videoInfo',videoInfo);
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $player.style.display = 'inline-block';
							 | 
						||
| 
								 | 
							
								        $pause.style.display = 'none';
							 | 
						||
| 
								 | 
							
								        $destroy.style.display = 'none';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    create();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $player.addEventListener('click', function () {
							 | 
						||
| 
								 | 
							
								        var href = $playHref.value;
							 | 
						||
| 
								 | 
							
								        if (href) {
							 | 
						||
| 
								 | 
							
								            jessibuca.play(href);
							 | 
						||
| 
								 | 
							
								            $player.style.display = 'none';
							 | 
						||
| 
								 | 
							
								            $pause.style.display = 'inline-block';
							 | 
						||
| 
								 | 
							
								            $destroy.style.display = 'inline-block';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }, false)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $pause.addEventListener('click', function () {
							 | 
						||
| 
								 | 
							
								        $player.style.display = 'inline-block';
							 | 
						||
| 
								 | 
							
								        $pause.style.display = 'none';
							 | 
						||
| 
								 | 
							
								        jessibuca.pause();
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $destroy.addEventListener('click', function () {
							 | 
						||
| 
								 | 
							
								        if (jessibuca) {
							 | 
						||
| 
								 | 
							
								            jessibuca.destroy().then(()=>{
							 | 
						||
| 
								 | 
							
								                create();
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else {
							 | 
						||
| 
								 | 
							
								            create();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</body>
							 | 
						||
| 
								 | 
							
								</html>
							 | 
						||
| 
								 | 
							
								
							 |