1

我正在尝试拨打电话,以便在我的播放列表中单击视频的标题时,它将回调特定的视频 url,以显示在我创建的元数据字段框中。

到目前为止,我得到了结果,但我使用的下面的函数给了我 rmtp url,如下所示:

(rtmp://brightcove.fcod.llnwd.net/a500/d16/&mp4:media/1978114949001/1978114949001_2073371902001_How-to-Fish-the-Ice-Worm.mp4&1358870400000&7b1c5b2e65a7c051419c7f50bd712b1b )

Brightcove 曾说过使用 ( FLVURL&media_delivery=http)。

我已经尝试了所有我知道的方法来在我的函数中放置媒体传递,但总是想出除了 rmtp 或空白之外什么都没有。

你能帮忙解决我展示的少量代码吗?如果我需要展示更多,那不是问题。谢谢

function showMetaData(idx) {
    $("tr.select").removeClass("select");
    $("#tbData>tr:eq("+idx+")").addClass("select");

    var v = oCurrentVideoList[idx];

    //URL Metadata
    document.getElementById('divMeta.FLVURL').innerHTML = v.FLVURL;

这是我的人口呼吁我的名单。

//For PlayList by ID

function buildMAinVideoList() {

//Wipe out the old results
$("#tbData").empty();

console.log(oCurrentMainVideoList);
oCurrentVideoList = oCurrentMainVideoList;
// Display video count
document.getElementById('divVideoCount').innerHTML = oCurrentMainVideoList.length + " videos";
document.getElementById('nameCol').innerHTML = "Video Name";
//document.getElementById('headTitle').innerHTML = title;
document.getElementById('search').value = "Search Videos";
document.getElementById('tdMeta').style.display  = "block";
document.getElementById('searchDiv').style.display  = "inline";
document.getElementById('checkToggle').style.display  = "inline";
$("span[name=buttonRow]").show();
$(":button[name=delFromPlstButton]").hide();


//For each retrieved video, add a row to the table
var modDate = new Date();
$.each(oCurrentMainVideoList, function(i,n){
    modDate.setTime(n.lastModifiedDate);
    $("#tbData").append(
        "<tr style=\"cursor:pointer;\" id=\""+(i)+"\"> \
        <td>\
            <input type=\"checkbox\" value=\""+(i)+"\" id=\""+(i)+"\" onclick=\"checkCheck()\">\
        </td><td>"
            +n.name +
        "</td><td>"
            +(modDate.getMonth()+1)+"/"+modDate.getDate()+"/"+modDate.getFullYear()+"\
        </td><td>"
            +n.id+
        "</td><td>"
            +((n.referenceId)?n.referenceId:'')+
        "</td></tr>"
    ).children("tr").bind('click', function(){
        showMetaData(this.id);
    })
});

//Zebra stripe the table
$("#tbData>tr:even").addClass("oddLine");

//And add a hover effect
$("#tbData>tr").hover(function(){
    $(this).addClass("hover");
}, function(){
    $(this).removeClass("hover");
});

//if there are videos, show the metadata window, else hide it
if(oCurrentMainVideoList.length > 1){showMetaData(0);}
else{closeBox("tdMeta");}
}
4

1 回答 1

2

如果查找 HTTP 路径,当对 Brightcove 的 API 调用正确时,您将看不到 rtmp:// url。

由于您正在获取 rtmp URL,这可以验证您正在使用具有 URL 访问权限的 API 令牌,这很好。像这样的请求应该返回播放列表和 http URL(插入您的令牌和播放列表 ID)。

http://api.brightcove.com/services/library?command=find_playlist_by_id&token= {yourToken}&playlist_id={yourPlaylist}&video_fields=FLVURL&media_delivery=http

此 API 测试工具可以帮助您构建查询,并显示预期结果: http: //opensource.brightcove.com/tool/api-test-tool

我没有看到您的代码有什么问题,但如果您还没有尝试过,在浏览器中进行调试可以帮助您确认返回的 API 结果,而无需通过代码访问它。这可以帮助您根除用于访问值的代码的任何问题,以及值本身的问题。如果您以前没有使用过它,这是关于在 Chrome 中进行步进调试的概述: https ://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints

于 2013-02-01T15:18:43.510 回答