4760


現在、 VLC メディアプレイヤーの Web プラグインを利用して動画再生を行うページを作成しています。

そこで動画を倍速再生する必要があり、その方法として Javascript API の `vlc.input.rate`
で再生速度を操作しようとしていたのですが、問題が発生しました。

解決方法をご存知の方はいらっしゃらないでしょうか。

**○問題**  
    ∟`vlc` オブジェクトが取得できない。

**○現象**  
    ∟「[VLC Wiki: Documentation:WebPlugin](https://wiki.videolan.org/Documentation:WebPlugin/)」を参照として、以下のソースで再生速度を1.5倍に操作しようとしたのですが、ソース中の `vlc.input` が `undefined` となっていました。

**○ソース**

[code]

    <object type="application/x-vlc-plugin" id="vlc" width="640" height="360" classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" codebase="http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab">
        <param name="src" value="rtmp://s2m5qclftojb1s.cloudfront.net/cfx/st/oceans-clip.mp4" />
        <param name="video1" id="mrlVideo" value="rtmp://xxxxx.cloudfront.net/cfx/st/xxxxx.mp4" />
        <param name="volume" value="50" />
        <param name="autoplay" value="false" />
        <param name="loop" value="false" />
        <param name="fullscreen" value="false" />
        <param name="wmode" value="transparent" />
        <param name="toolbar" value="true" />
        <param name="windowless" value="true" />
        <embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" name="video1" autoplay="false" loop="false" width="640" height="360" target="rtmp://xxxxx.cloudfront.net/cfx/st/xxxxx.mp4"/>
    </object>
    <script type="text/javascript">
    <!--
    var vlc = document.getElementById("vlc");
    vlc.input.rate = 1.5;
    //-->
    </script>
    
[/code]


CC BY-SA 3.0
2015-01-14T14:48:59.183
4566
2015-08-16T13:30:17.810
2015-01-16T07:26:36.333
7384
7384
question
javascript html
VLCメディアプレイヤーの Javascript API で、再生速度を変更する方法


ActiveXのVLC WebAPI使用方法ですが、VLCのインストールディレクトリにある`test.html`が参考になるかと思います。

私の環境では下記のディレクトリです。

[code]

    C:\Program Files (x86)\VideoLAN\VLC\sdk\activex
    
[/code]

## HTML

[axvlc.cab](http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab)は既に存在せず`404
Not Found`ですので、下記の様に書き換える必要があります。  
(param等は適宜書き換えてください)

[code]

    <object classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" width="640" height="360" id="vlc" events="True">
      <param name="MRL" value="" />
      <param name="ShowDisplay" value="True" />
      <param name="AutoLoop" value="False" />
      <param name="AutoPlay" value="False" />
      <param name="Volume" value="50" />
      <param name="toolbar" value="true" />
      <param name="StartTime" value="0" />
      <EMBED pluginspage="http://www.videolan.org"
        type="application/x-vlc-plugin"
        version="VideoLAN.VLCPlugin.2"
        width="640"
        height="360"
        toolbar="true"
        loop="false"
        text="Waiting for video"
        name="vlc">
      </EMBED>
    </object>
    
[/code]

## JavaScript

`getVLC()`を使用してvlcオブジェクトにアクセスできます。  
(IE 10, Chromeで動作を確認)

[code]

    function getVLC(name)
    {
        if (window.document[name])
        {
            return window.document[name];
        }
        if (navigator.appName.indexOf("Microsoft Internet")==-1)
        {
            if (document.embeds && document.embeds[name])
                return document.embeds[name];
        }
        else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
        {
            return document.getElementById(name);
        }
    }
    
    getVLC("vlc").input.rate = 1.5;
    
[/code]


CC BY-SA 3.0
2015-01-17T17:43:27.780
4760
2015-01-18T06:23:39.787
2015-01-18T06:23:39.787
3068
3068
4566
answer