如何在Ember中正确嵌入quicktime视频

时间:2014-06-25 20:16:59

标签: javascript video ember.js quicktime

我有一个视频链接列表,当点击一个视频链接时,旁边会显示相应的视频。虽然它似乎在大多数情况下工作正常,但如果我点击指向另一个视频的链接,则不会替换当前加载的视频。 src属性和uri相应地更改,但视频本身不会更新。有没有办法在保持html结构的同时用另一个视频正确替换当前视频?当我用视频视图完全替换视频视图时,我没有任何问题,但这不是我正在寻找的行为。

HTML

<script type="text/x-handlebars" data-template-name="videos">
    {{#if mediaLength}}
        <div class="row">
            <div class="col-md-3">
                {{#each itemController="video"}}
                    <div class="video thumbnail">
                        <h3>{{#link-to 'video' this}}{{time createdAt}}{{/link-to}}</h3>
                        ({{part}})
                    </div>
                    <hr>
                {{/each}}
            </div>
            <div class="col-md-7">
                {{outlet}}
            </div>
        </div>
    {{else}}
        stuff
    {{/if}}
</script>

<script type="text/x-handlebars" data-template-name="video">
    <div class="qtplayer-embed" style=" width:270px; height:496px;">
        <object {{bind-attr classid=classid width=width height=height codebase=codebase}}>
            <param name="src" {{bind-attr value=url}}>
            <param name="autoplay" {{bind-attr value=autoplay}}>
            <param name="scale" {{bind-attr value=scale}}>
            <param name="enablejavascript" {{bind-attr value=enablejavascript}}>
            <param name="postdomevents" {{bind-attr value=postdomevents}}>
            <param name="showlogo" {{bind-attr value=showlogo}}>
            <embed type="video/quicktime" {{bind-attr src=url width=width height=height pluginspage=pluginspage autoplay=autoplay scale=scale enablejavascript=enablejavascript postdomevents=postdomevents showlogo=showlogo}}>
        </object>
    </div>
</script>

路线

App.Router.map ->
    @resource "videos", ->
        @resource "video",
            path: "/:video_id"

App.VideosRoute = Ember.Route.extend(
    model: ->
        this.store.find('video')
)


App.VideoRoute = Ember.Route.extend(
    model: (params) ->
        this.store.find('video', params.video_id)
)

1 个答案:

答案 0 :(得分:1)

这是嵌入对象的已知限制,不同的浏览器以不同的方式实现它们。在标记上设置src可能会或可能不会实际触发嵌入对象内的属性。

您必须将标记视为更多构造函数,而不一定是设置和更改嵌入对象本身属性的网关。这几乎留下了破坏和重建元素。

How to change the value of embed src with JavaScript?

JavaScript: Changing src-attribute of a embed-tag