首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从json文件中获取视频源和数据的视频播放器。

从json文件中获取视频源和数据的视频播放器。
EN

Stack Overflow用户
提问于 2015-12-15 12:47:47
回答 1查看 4.5K关注 0票数 1

试图构建一个从json文件( src & title )获取视频数据的视频播放器。从视觉上看,这将是一个播放器与下面的3个链接,加载不同的视频到播放器时,点击。

到目前为止我的代码是:

代码语言:javascript
运行
复制
<link rel="stylesheet" type="text/css" href="style.css">
<div class="container">
<div class="hook">
<video onended="playNext()" width="640" height="480" id="myVideo"     controls autoplay>

    </video>
</div>

<div>
  <ul>
    <li><a id="vid1" href="#"><img src="http://placehold.it/200x100"></a>  </li>
    <li><a id="vid2" href="#"><img src="http://placehold.it/200x100"></a></li>
    <li><a id="vid3" href="#"><img src="http://placehold.it/200x100"></a></li>
  </ul>
</div>
<!-- /.hook -->
</div>
<!-- /.container -->

<script type="text/javascript"  src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js">  </script>

<script type="text/javascript">

var conUrlCount = 0;
var myVideo = document.getElementById("myVideo");

//parsedData should be declared outside the function scope since we want it     to be accessible from outside
var parsedData;
var callback = function (text) {
parsedData = JSON.parse(text);
console.log('parsed',parsedData)
conUrlCount = 0;
//after load play the first video
playNext();
};

//when page is loaded, data in json file is parsed and returned
function loadFunction() {
//returning json data
//ajax.get("clips.json", callback);

//simulate
getAjax(callback);
};


function playNext() {
if (!parsedData) {
    return
}
var myVideo = document.getElementById("myVideo");
myVideo.src = parsedData[conUrlCount]['content-url'];
myVideo.play();
conUrlCount+1;
}


//to simulate
function getAjax(callback) {
setTimeout(function () {
    callback(JSON.stringify([{
        "id": "vid1",
            "name": "#",
            "description": "#",
            "content-url": "video1.mp4",
            "thumb-url": "#"
    }, {
        "id": "vid2",
            "name": "#",
            "description": "#",
            "content-url": "video2.mp4",
            "thumb-url": "#"
    }, {
        "id": "vid3",
            "name": "#",
            "description": "#",
            "content-url": "video3.mp4",
            "thumb-url": "#"
    },{
        "id": "vid4",
            "name": "#",
            "description": "#",
            "content-url": "video4.mp4",
            "thumb-url": "#"
    }  ]))
}, 100)
}

loadFunction();

document.getElementById("vid1").addEventListener("click", loadFunction);
document.getElementById("vid2").addEventListener("click", loadFunction);
document.getElementById("vid3").addEventListener("click", loadFunction);

</script>

现在我不能把下面的3块瓷砖装到玩家身上?任何指点都将不胜感激.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-15 13:32:04

根据我们的评论,如下所示应该这样做;

代码语言:javascript
运行
复制
var callback = function (text, video) {
        parsedData = JSON.parse(text);
        console.log('parsed', parsedData)
        conUrlCount = video;
        //after load play the first video
        playNext();
};

   function loadFunction(video) {
        //returning json data
        //ajax.get("clips.json", callback);

        //simulate
        getAjax(callback, video);
    }

    //to simulate
function getAjax(callback, video) {
    setTimeout(function () {
        callback(JSON.stringify([{
            "id": "vid1",
            "name": "#",
            "description": "#",
            "content-url": "video1.mp4",
            "thumb-url": "#"
        }, {
            "id": "vid2",
            "name": "#",
            "description": "#",
            "content-url": "video2.mp4",
            "thumb-url": "#"
        }, {
            "id": "vid3",
            "name": "#",
            "description": "#",
            "content-url": "video3.mp4",
            "thumb-url": "#"
        }, {
            "id": "vid4",
            "name": "#",
            "description": "#",
            "content-url": "video4.mp4",
            "thumb-url": "#"
        }]), video)
    }, 100)
}

document.getElementById("vid1").addEventListener("click", loadFunction(0));
document.getElementById("vid2").addEventListener("click", loadFunction(1);
document.getElementById("vid3").addEventListener("click", loadFunction(2));

注意更改的函数。我在回调中添加了一个视频变量,以向需要播放的视频发出信号。例如,您可以在任何时候(包括在页面加载上)调用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34289710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档