0

リストが表示された後にユーザーが選択したビデオに応じて、ページにビデオを埋め込もうとしています。私のページには次のものがあります。

       <div id="vidContent" style="text-align:left">
           <object width="550px" height="350px" >
                 <asp:Literal ID="ltlVideo" runat="server"></asp:Literal>
            </object>
       </div>

そして、コードビハインドには次のものがあります。

        Dim strVidPath As String = "http://www.youtube.com/v/" & strVidID
        ltlVideo.Text = "<embed src='" & strVidPath & "' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' height='350' width='470'></embed>
        phVideoBanner.Visible = True

..

これは問題なく動作します...「strVidID」がある場合

strVidPath = www.youtube.com/v/_O7iUiftbKU がある場合にのみ表示および再生されるようです

ただし、strVidPath = www.youtube.com/watch?v=_O7iUiftbKU の場合は再生されません。これは、YouTube ビデオを見ているときにアドレス バーに表示される通常の URL のようです。

ユーザーがページにビデオを追加できるようにしたいのですが、ビデオの URL に貼り付けた方が簡単だと思っていましたが、代わりに videoID を貼り付ける必要があるようです。 www.youtube.com/v/_O7iUiftbKU を使用した場合にのみ再生されるようです

これがなぜなのか知っている人はいますか?

4

2 に答える 2

2

YouTubeウォッチページのURLを解析して自分で埋め込みコードを作成するのではなく、oEmbedサービスを使用してそれを行うことができます。

iframe埋め込みコードではなくレガシー埋め込みコードを取り戻す必要がある場合は、次iframe=0のように、URLパラメーターの1つとしてoEmbedサービスに渡す必要があります:http ://www.youtube.com/oembed?url = http% 3A // www.youtube.com / watch%3Fv%3DbDOYN-6gdRE&format = json&iframe = 0

于 2012-12-12T17:39:52.980 に答える
1

「見る」という単語が含まれる URL 構造は、ご指摘のとおり、YouTube の公開 Web ページであり、動画以外にも多くの内容が含まれています。ページに表示される他のすべてのコンテンツも含まれています。本質的には、これは HTML ページに解決されるポインターであり、埋め込み要素のソースとして HTML ページを持つことはできません。

適切な (つまり機能する) URL 構造は、HTML ページへのポインターではなく、プレーヤー自体に直接解決されるポインターであるため、embed 要素のソースとして機能します。

スタック オーバーフローの質問へのリンクを次に示します。その回答には、通常の YouTube URL (任意の形式) を入力として受け取り、正規表現一致を実行し、Youtube ID だけを返す C# コード ブロックが含まれています。必要に応じて変更します...したがって、引き続きユーザーに動画の URL 全体を貼り付けることができます。

URLでYouTubeとvimeoからビデオIDを取得するC#正規表現

于 2012-12-12T17:19:00.947 に答える