locked
MediaElementを利用したストリーミングの再生 RRS feed

  • 質問

  • お世話になります。

    Windows Server 2003 のメディアサービスからのストリーミングを受けるプレーヤー(Silverlight2ベータ)を

    作成してるのですが、アクセスすると以下のエラーが発生します。

     

    errorMessage:MediaError
    errorType :AG_E_NETWORK_ERROR
    errorCode :4001

    http://msdn.microsoft.com/ja-jp/library/cc189020(VS.95).aspx
    上記ページの「OnError イベント エラー テーブル 」によると、errorCodeの4001はAG_E_CONNECTION_ERRORに

    なっています。

    これは、Silverlightをローカルで再生と、webサーバを使った場合で同様の動きをします。

    複数のクライアントPCからアクセスした場合、同タイミングに失敗しています。

    WindowsMediaPlayerでアクセスすると問題なく表示されます。

    MediaElementのSourceが始めに空なのが問題かと思い、デフォルトのパスを作ってみても変わりませんでした。

     

    利用しているソース抜き出して記述します。
    [xaml]
    <MediaElement x:Name="vid" Width="640" Height="480" Source="" Stretch="Uniform" Canvas.Left="0" Canvas.Top="0" />

     

    [javascript]
    // メディアサービスへのパス
    var source = "http://・・・/video.wmv";

    SilverlightMediaPlayer.Scene.prototype =
    {
      handleLoad: function(plugIn, userContext, rootElement)
      {
        this.plugIn = plugIn;
        var vid = plugIn.content.findName("vid");
        vid.Source = source;
      },
    }

     

    また、成功してバッファリング中に再生位置の変更を行うと止まってしまい受付けなくなりますが、

    正常な動作でしょうか。

     

    お手数で申し訳ありませんが、よろしくお願い致します。

    2008年10月14日 11:25

回答

  •  

    >Windows Server 2003 のメディアサービスからのストリーミングを受けるプレーヤー(Silverlight2ベータ)を

    >作成してるのですが、アクセスすると以下のエラーが発生します。

    まず確認したいのですが、そのWindows Server 2003の環境は、次を満たしていますか。

    ・IISや他のWebサーバが80ポートを利用していない、あるいはIPアドレスを複数割り当てWebサーバ用に用意できている

    ・Windows Media Services 9において、HTTPによるストリーミングを許可している

     

     

    >WindowsMediaPlayerでアクセスすると問題なく表示されます。

    ストリーミングしているメディアの形式を確認いただけますか。オーディオのエンコーディングでSilverlightが対応していない形式を利用していると、Windows Media Playerで再生できてもSilverlightでは再生できません。

    http://msdn.microsoft.com/ja-jp/library/cc189080(VS.95).aspx

     

    問題を切り分けるよい方法は、Expression Encoder 2で再エンコードするという方法があります。ストリーミング用のプロファイルがありますので、問題となるメディアを再エンコードしてみてください。

    試用版は、

    http://www.microsoft.com/downloads/details.aspx?FamilyID=A04DCC8C-9DB7-41CB-A27C-08CBEB0A01BA&displaylang=ja

    から取得できます。

     

    >MediaElementのSourceが始めに空なのが問題かと思い、デフォルトのパスを作ってみても変わりませんでした。

    AutoPlay="True"という状況がよくなければ、MediaElementのタグを次のようにして、JavaScriptにMediaOpenedイベントハンドラを加えてみてください。

    <MediaElement x:Name="vid" Canvas.Left="0" Canvas.Top="0" AutoPlay="False" Source="http://・・・/video.wmv"/>

     

    SilverlightMediaPlayer.Scene.prototype =
    {
      handleLoad: function(plugIn, userContext, rootElement)
      {
        this.plugIn = plugIn;
        this.myVideo = plugIn.content.findName("vid");
        this.myVideo.addEventListener("MediaOpened", Silverlight.createDelegate(this, this.MediaReady));

      },

      MediaReady: function (sender, args)

      {

        this.myVideo.Play();

      }
    }

     

    >また、成功してバッファリング中に再生位置の変更を行うと止まってしまい受付けなくなりますが、

    >正常な動作でしょうか。

    いいえ、ストリーミングサーバとネットワークの状況にもよりますが、通常は正しく再生位置の変更が可能です。

     

    たとえば、次のURLでお試しいただけます。JavaScript APIで、バックエンドはWindows Mediaサービスによるストリーミングです。

    (mms:がhttp:にフォールバックしています)

    http://www.microsoft.com/japan/msdn/events/vs2008/scott/interview.html

     


     

    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
    2008年10月21日 3:55
  •  explasm さんからの引用

    mmsで接続しようとしてもサーバ側で対応していればhttpにプロトコル切り替えが行われることがあるらしいですね。

    残念ながら、私の場合同じサーバでIISでhttpを公開しているし、IPアドレスも1つしかないのでhttpへの切り替えができないようです。

     

    現在のSilverlightの実装においては、ストリーミングは、必ずHTTPを利用することになっています。

    http://msdn.microsoft.com/ja-jp/library/cc189080(VS.95).aspx#anchor_mediaformats_supported_protocols

     

    IISに80ポートを割り当てていて、同じサーバでWMSを稼働させている場合、WMS側のHTTPポートを80以外に割り当てる(例:8080など他のポートとぶつからないもの)か、IPアドレスを分ける必要がありますね。

     

    HTTPポートを80以外に割り当てる場合は、次の手順で行えます。

    Windows Media サービスのMMCから、サーバー名を選択し、右ペインの[プロパティ]タブを選びます。

    区分の[制御プロトコル]を選択し、プラグイン上に一覧になっている[WMS HTTPサーバー制御プロトコル] を「有効」にします。

    さらにそのリストをダブルクリックして、表示された[WMS HTTP サーバー制御プロトコルのプロパティ]の[ポートの選択]で

    「他のポートを使う」という部分のテキストボックスにポート番号を指定してください。

     


     この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年11月27日 4:20
  •  explasm さんからの引用

    確かに、ポートを変更する手はあると思うのですが、HTTPというものはポート番号80とセットで初めてHTTPという意識を強く持っていたため、選択肢から外していました。

    実際、ポート8080等を使った場合、どの程度の割合でファイアーウォール等で障害になるのか私にとっては未知数で、本格的な運用には適していないのではないかと考えます。

     

    そういったリスクを負うくらいなら、httpサーバにwmv等のファイルを直接置いた方がまだましだと思うのです。

    その場合の問題は、自動的にCMを挿入するなどの機能がないことや、CM再生の統計がとれないことでしょうか。

     

    IIS7ではこういったことが解決されるのでしょうか? ストリーミングに関して機能強化されているとどこかで見たような気がするのですが・・・

     

    統計もCM挿入ももしかするとSilverlightにプログラミングを施せばある程度解決できる問題ではありそうですが。

     

    ストリーミングが必須であれば、IPアドレスを増やす、あるいはWWWサーバとWMSサーバを分けて運用する方法を検討いただいた方がよろしいかと思います。

     

    プログレッシブダウンロードの唯一の欠点は、ダウンロードが終わっていない部分のメディアが再生できないことです。
    一方WMSでのストリーミングの場合は、再生を要求した部分からダウンロードします。バッファの時間の設定にもよりますが、任意の部分を頭出しする要求が必要な場合やクライアント側でのメディアダウンロードに必要なストレージ容量を減らすことができます。またライブストリーミングにも対応できます。

     

    プログレッシブダウンロードだけでよければ、無償のSilverlight Streamingのサービスを利用して、ビデオ配信をしていただくこともできます。ただし、ビデオのビットレートやファイルサイズに制約があり、ビデオ一本あたり、1.4Mbpsで10分以内となっています。

    http://silverlight.live.com/

     

    IIS 7においては、IIS Smooth Streamingという技術が2009年の第一四半期あたりに一般ベータになる予定です。

    http://www.iis.net/extensions/SmoothStreaming

     

    これは、従来のストリーミングではなく、HTTPによるダウンロードを応用した技術です。SilverlightのクライアントとIISのSmooth Streamingのプラグインとが協調して、複数のビットレートからなるメディアをSilverlight側のCPU使用率やネットワーク帯域幅を踏まえて待ち時間がとても少ないメディア再生体験を実現するものです。こちらは、IIS上のHTTP 80ポートひとつだけで実現できます。

    待ち時間が少なくなる理由は、すべてのメディアをダウンロードすることはしないで、再生したいメディア内の時刻+帯域幅によるリクエストをSilverlightがIISへ送信し、IISは、メディアの小さな塊をSilverlightに返します。IISから見ると、SilverlightからREST形式でファイル要求されたような形になり、Silverlightからは、小さなメディアファイルがIISから送られてくるように見えます。

     

    コンテンツの統計については、WMSを使う場合は、WMSロギングモデルを利用して、ログの取得が可能です。

     

    Windows Mediaのlogging modelについて(英語)

    http://www.microsoft.com/windows/windowsmedia/howto/articles/loggingmodel.aspx (英語)

     

    WMS logging プラグインの作成(英語)
    http://msdn.microsoft.com/en-us/library/ms741984(VS.85).aspx

    こちらを使わない場合は、Webサーバに小さな画像ファイルなどを名前をつけて配置し、Silverlightからアクセスさせ、Webサーバのログを解析することで、統計を取ることができます。チェックポイントとなる部分で、MediaElementのTimelineMarkerによるイベントを発生させることや、画面上のイベントに応じて、Webサーバのファイルをダウンロードさせればよいからです。

    メディア再生中に別のメディアを割り込ませる方法については、Silverlight側で行うならば、MediaElementを複数配置してそのOpacityプロパティあるいはVisibilityプロパティで不要なメディアを見掛け上、見えないようにする+メディアの一時停止/再生を組みわせれば可能だと思います。

     


      この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年12月5日 8:34
  • ScottGuのインタビューが再生できないということですが、すでに稼働確認しているアプリケーションで動作しないということは別の問題の可能性があります。

    他の問題と切り分けるため、お使いの環境(OS、ブラウザ)、Silverlight 2の詳しいバージョンを教えていただけますか。もちろんSilverlight 2 RTWをお使いですよね。

     


     この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
    2008年12月8日 12:48
  •  explasm さんからの引用

    私としましては、IIS Smooth Streaming に期待したいと思います。

     

    体験環境だけでしたら、Expression Encoder 2 SP1とSilverlight 2で作れます。

    Expression Encoder 2 SP1からは、Silverlight 2のメディアプレイヤーのテンプレートが用意されていて、そのプレイヤーはSmooth Streaming (Adaptive Streaming)をサポートしています。Expression Encoder 2 SP1を実行しているマシンで起動するテスト用のWebサーバーはSmooth Streaminのコンテンツを配信できるようになっています。

     

    念のため、ダウンロードの用のリンクを載せておきます。

    Expression Encoder 2試用版

    http://www.microsoft.com/downloads/details.aspx?FamilyID=a04dcc8c-9db7-41cb-a27c-08cbeb0a01ba&DisplayLang=ja

    Expression Encoder 2 SP1

    http://www.microsoft.com/downloads/details.aspx?FamilyID=a29be9f9-29e1-4e70-bf67-02d87d3e556e&DisplayLang=ja

     


    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年12月17日 9:40
  • お世話になります。

    原因はわかりませんが、たまたま見れなかったようです。

    再生できました。

     

    本題の件ですが、プロキシが原因でした。

    ご対応ありがとうございます。

    2009年1月9日 5:14

すべての返信

  •  

    >Windows Server 2003 のメディアサービスからのストリーミングを受けるプレーヤー(Silverlight2ベータ)を

    >作成してるのですが、アクセスすると以下のエラーが発生します。

    まず確認したいのですが、そのWindows Server 2003の環境は、次を満たしていますか。

    ・IISや他のWebサーバが80ポートを利用していない、あるいはIPアドレスを複数割り当てWebサーバ用に用意できている

    ・Windows Media Services 9において、HTTPによるストリーミングを許可している

     

     

    >WindowsMediaPlayerでアクセスすると問題なく表示されます。

    ストリーミングしているメディアの形式を確認いただけますか。オーディオのエンコーディングでSilverlightが対応していない形式を利用していると、Windows Media Playerで再生できてもSilverlightでは再生できません。

    http://msdn.microsoft.com/ja-jp/library/cc189080(VS.95).aspx

     

    問題を切り分けるよい方法は、Expression Encoder 2で再エンコードするという方法があります。ストリーミング用のプロファイルがありますので、問題となるメディアを再エンコードしてみてください。

    試用版は、

    http://www.microsoft.com/downloads/details.aspx?FamilyID=A04DCC8C-9DB7-41CB-A27C-08CBEB0A01BA&displaylang=ja

    から取得できます。

     

    >MediaElementのSourceが始めに空なのが問題かと思い、デフォルトのパスを作ってみても変わりませんでした。

    AutoPlay="True"という状況がよくなければ、MediaElementのタグを次のようにして、JavaScriptにMediaOpenedイベントハンドラを加えてみてください。

    <MediaElement x:Name="vid" Canvas.Left="0" Canvas.Top="0" AutoPlay="False" Source="http://・・・/video.wmv"/>

     

    SilverlightMediaPlayer.Scene.prototype =
    {
      handleLoad: function(plugIn, userContext, rootElement)
      {
        this.plugIn = plugIn;
        this.myVideo = plugIn.content.findName("vid");
        this.myVideo.addEventListener("MediaOpened", Silverlight.createDelegate(this, this.MediaReady));

      },

      MediaReady: function (sender, args)

      {

        this.myVideo.Play();

      }
    }

     

    >また、成功してバッファリング中に再生位置の変更を行うと止まってしまい受付けなくなりますが、

    >正常な動作でしょうか。

    いいえ、ストリーミングサーバとネットワークの状況にもよりますが、通常は正しく再生位置の変更が可能です。

     

    たとえば、次のURLでお試しいただけます。JavaScript APIで、バックエンドはWindows Mediaサービスによるストリーミングです。

    (mms:がhttp:にフォールバックしています)

    http://www.microsoft.com/japan/msdn/events/vs2008/scott/interview.html

     


     

    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
    2008年10月21日 3:55
  • SL Ver2.0ですが、

    私はもっとシンプルな方法でうまくいきません。

     

      <MediaElement Source="mms://サーバドメイン名/公開ポイント名/ファイル名.wmv"/>

     

    で同じエラーが出ます。ちなみに公開ポイントはオンデマンドタイプです。

    もちろん、Windows Media Player に同じURLを指定すれば再生可能です。

     

    うまくいったのはhttpだけで、

      <MediaElement Source="http://サーバドメイン名/ファイル名.wmv"/>
    や、

      <MediaElement Source="ファイル名.wmv"/> (httpサーバでも、ローカルでもOK)
    だけです。

     

    気になるのは、

     

    http://msdn.microsoft.com/ja-jp/library/bb979939(VS.95).aspx

     

    に、

     

    URI にモニカ mms:rtsp:、または rtspt: を使用してメディア ソースを指定することもできます。いずれの場合も、実際のプロトコルおよび URI スキームは http に戻ります

     

    という説明があることですが、この意味が理解できません。このこととエラーは関係あるのでしょうか。

    Windows Media Server になにか設定を加えなければならないのでしょうか。

    2008年11月24日 8:54
  • すみません、自己レスになりますが・・・

     

    mmsで接続しようとしてもサーバ側で対応していればhttpにプロトコル切り替えが行われることがあるらしいですね。

    残念ながら、私の場合同じサーバでIISでhttpを公開しているし、IPアドレスも1つしかないのでhttpへの切り替えができないようです。

    結局のところ、インターネットでSilverlightを使ってmmsの映像を表示させるには、httpサーバとは別の専用のグローバルIPアドレスが必須である、ということのようです。

     

    WMSがIISと連携してくれればそんな必要はないのに・・・

     

    これが間違いでなければ、非常に大きな制限事項と言えるかもしれません。

     

    当面、探り当てが難しいサブフォルダを作ってそこにwmvファイルを直接格納して・・・

    なんか悔しい。

     

    2008年11月24日 9:21
  •  explasm さんからの引用

    mmsで接続しようとしてもサーバ側で対応していればhttpにプロトコル切り替えが行われることがあるらしいですね。

    残念ながら、私の場合同じサーバでIISでhttpを公開しているし、IPアドレスも1つしかないのでhttpへの切り替えができないようです。

     

    現在のSilverlightの実装においては、ストリーミングは、必ずHTTPを利用することになっています。

    http://msdn.microsoft.com/ja-jp/library/cc189080(VS.95).aspx#anchor_mediaformats_supported_protocols

     

    IISに80ポートを割り当てていて、同じサーバでWMSを稼働させている場合、WMS側のHTTPポートを80以外に割り当てる(例:8080など他のポートとぶつからないもの)か、IPアドレスを分ける必要がありますね。

     

    HTTPポートを80以外に割り当てる場合は、次の手順で行えます。

    Windows Media サービスのMMCから、サーバー名を選択し、右ペインの[プロパティ]タブを選びます。

    区分の[制御プロトコル]を選択し、プラグイン上に一覧になっている[WMS HTTPサーバー制御プロトコル] を「有効」にします。

    さらにそのリストをダブルクリックして、表示された[WMS HTTP サーバー制御プロトコルのプロパティ]の[ポートの選択]で

    「他のポートを使う」という部分のテキストボックスにポート番号を指定してください。

     


     この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年11月27日 4:20
  • ご回答ありがとうございます。

     

    確かに、ポートを変更する手はあると思うのですが、HTTPというものはポート番号80とセットで初めてHTTPという意識を強く持っていたため、選択肢から外していました。

    実際、ポート8080等を使った場合、どの程度の割合でファイアーウォール等で障害になるのか私にとっては未知数で、本格的な運用には適していないのではないかと考えます。

     

    そういったリスクを負うくらいなら、httpサーバにwmv等のファイルを直接置いた方がまだましだと思うのです。

    その場合の問題は、自動的にCMを挿入するなどの機能がないことや、CM再生の統計がとれないことでしょうか。

     

    IIS7ではこういったことが解決されるのでしょうか? ストリーミングに関して機能強化されているとどこかで見たような気がするのですが・・・

     

    統計もCM挿入ももしかするとSilverlightにプログラミングを施せばある程度解決できる問題ではありそうですが。

    2008年11月27日 7:12
  •  explasm さんからの引用

    確かに、ポートを変更する手はあると思うのですが、HTTPというものはポート番号80とセットで初めてHTTPという意識を強く持っていたため、選択肢から外していました。

    実際、ポート8080等を使った場合、どの程度の割合でファイアーウォール等で障害になるのか私にとっては未知数で、本格的な運用には適していないのではないかと考えます。

     

    そういったリスクを負うくらいなら、httpサーバにwmv等のファイルを直接置いた方がまだましだと思うのです。

    その場合の問題は、自動的にCMを挿入するなどの機能がないことや、CM再生の統計がとれないことでしょうか。

     

    IIS7ではこういったことが解決されるのでしょうか? ストリーミングに関して機能強化されているとどこかで見たような気がするのですが・・・

     

    統計もCM挿入ももしかするとSilverlightにプログラミングを施せばある程度解決できる問題ではありそうですが。

     

    ストリーミングが必須であれば、IPアドレスを増やす、あるいはWWWサーバとWMSサーバを分けて運用する方法を検討いただいた方がよろしいかと思います。

     

    プログレッシブダウンロードの唯一の欠点は、ダウンロードが終わっていない部分のメディアが再生できないことです。
    一方WMSでのストリーミングの場合は、再生を要求した部分からダウンロードします。バッファの時間の設定にもよりますが、任意の部分を頭出しする要求が必要な場合やクライアント側でのメディアダウンロードに必要なストレージ容量を減らすことができます。またライブストリーミングにも対応できます。

     

    プログレッシブダウンロードだけでよければ、無償のSilverlight Streamingのサービスを利用して、ビデオ配信をしていただくこともできます。ただし、ビデオのビットレートやファイルサイズに制約があり、ビデオ一本あたり、1.4Mbpsで10分以内となっています。

    http://silverlight.live.com/

     

    IIS 7においては、IIS Smooth Streamingという技術が2009年の第一四半期あたりに一般ベータになる予定です。

    http://www.iis.net/extensions/SmoothStreaming

     

    これは、従来のストリーミングではなく、HTTPによるダウンロードを応用した技術です。SilverlightのクライアントとIISのSmooth Streamingのプラグインとが協調して、複数のビットレートからなるメディアをSilverlight側のCPU使用率やネットワーク帯域幅を踏まえて待ち時間がとても少ないメディア再生体験を実現するものです。こちらは、IIS上のHTTP 80ポートひとつだけで実現できます。

    待ち時間が少なくなる理由は、すべてのメディアをダウンロードすることはしないで、再生したいメディア内の時刻+帯域幅によるリクエストをSilverlightがIISへ送信し、IISは、メディアの小さな塊をSilverlightに返します。IISから見ると、SilverlightからREST形式でファイル要求されたような形になり、Silverlightからは、小さなメディアファイルがIISから送られてくるように見えます。

     

    コンテンツの統計については、WMSを使う場合は、WMSロギングモデルを利用して、ログの取得が可能です。

     

    Windows Mediaのlogging modelについて(英語)

    http://www.microsoft.com/windows/windowsmedia/howto/articles/loggingmodel.aspx (英語)

     

    WMS logging プラグインの作成(英語)
    http://msdn.microsoft.com/en-us/library/ms741984(VS.85).aspx

    こちらを使わない場合は、Webサーバに小さな画像ファイルなどを名前をつけて配置し、Silverlightからアクセスさせ、Webサーバのログを解析することで、統計を取ることができます。チェックポイントとなる部分で、MediaElementのTimelineMarkerによるイベントを発生させることや、画面上のイベントに応じて、Webサーバのファイルをダウンロードさせればよいからです。

    メディア再生中に別のメディアを割り込ませる方法については、Silverlight側で行うならば、MediaElementを複数配置してそのOpacityプロパティあるいはVisibilityプロパティで不要なメディアを見掛け上、見えないようにする+メディアの一時停止/再生を組みわせれば可能だと思います。

     


      この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年12月5日 8:34
  • ご返答ありがとうございます。

    遅くなってすみません。

     

    >まず確認したいのですが、そのWindows Server 2003の環境は、次を満たしていますか。

    >・IISや他のWebサーバが80ポートを利用していない、あるいはIPアドレスを複数割り当てWebサーバ用に用意できている

    >・Windows Media Services 9において、HTTPによるストリーミングを許可している

    満たしています。

    Webサーバとストリーミングサービスは違う機材を使用しています。

    設定もHTTPを許可しています。

    エラーになるタイミングはアクセス時とメディアのコントロール時で、発生タイミングはまちまちです。

    なので、正常に動作しているときは、はたから見たら問題がない様に見える場合があります。

    また、WebサーバをIIS6や7にしたり、アパッチを使ったり、Windows Server 2008、いろいろなPCやMacの環境などで、

    試してみましたが、同じでした。

     

    >ストリーミングしているメディアの形式を確認いただけますか。オーディオのエンコーディングでSilverlightが対応していない形式を利用していると、Windows Media Playerで再生できてもSilverlightでは再生できません。

    >http://msdn.microsoft.com/ja-jp/library/cc189080(VS.95).aspx

    >問題を切り分けるよい方法は、Expression Encoder 2で再エンコードするという方法があります。ストリーミング用のプロファイルがありますので、問題となるメディアを再エンコードしてみてください。

    >試用版は、

    >http://www.microsoft.com/downloads/details.aspx?FamilyID=A04DCC8C-9DB7-41CB-A27C-08CBEB0A01BA&displaylang=ja

    >から取得できます。

    WindowsMediaエンコーダ9やExpression Encoder 2での再エンコード、vistaの中にあるwmvファイルで試したのですが、

    結果は同じでした。

     

    >AutoPlay="True"という状況がよくなければ、MediaElementのタグを次のようにして、JavaScriptにMediaOpenedイベントハンドラを加えてみてください。

    ><MediaElement x:Name="vid" Canvas.Left="0" Canvas.Top="0" AutoPlay="False" Source="http://・・・/video.wmv"/>

    >

    >SilverlightMediaPlayer.Scene.prototype =
    >{
    >  handleLoad: function(plugIn, userContext, rootElement)
    >  {
    >    this.plugIn = plugIn;
    >    this.myVideo = plugIn.content.findName("vid");
    >    this.myVideo.addEventListener("MediaOpened", Silverlight.createDelegate(this, this.MediaReady));

    >  },

    >  MediaReady: function (sender, args)

    >  {

    >    this.myVideo.Play();

    >  }

    >}

    試してみましたが、うまくいきませんでした。

    エラーの現象は同じでしたが、発生確率が少し下がった気がします。

    ボタンを押下したらMediaElement のSourceにURLを入れるようにして試したところ、(AutoPlay="False"で)

    同様にエラーが発生しました。

    残念なことですが全く糸口がわからないのです。

    たまにSilverlight.createDelegateが怪しいような気がします。

    一度Closedが発生すると再読み込みでも復旧できないです。

     

    >たとえば、次のURLでお試しいただけます。JavaScript APIで、バックエンドはWindows Mediaサービスによるストリーミングです。

    >(mms:がhttp:にフォールバックしています)

    >http://www.microsoft.com/japan/msdn/events/vs2008/scott/interview.html

    silverlight error message

    ErrorCode:2263

    ErrorTypeStick out tonguearesError

    Message:AG_E_PARSER_MISSING_DEFAULT_NAMESPACE

    XamlFileStick out tonguelayer.xaml

     

    とダイアログが表示されます。。。

     

    環境はsilverlight2です。

    2008年12月5日 12:10
  • ScottGuのインタビューが再生できないということですが、すでに稼働確認しているアプリケーションで動作しないということは別の問題の可能性があります。

    他の問題と切り分けるため、お使いの環境(OS、ブラウザ)、Silverlight 2の詳しいバージョンを教えていただけますか。もちろんSilverlight 2 RTWをお使いですよね。

     


     この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
    2008年12月8日 12:48
  • 詳細なご説明ありがとうございます。大変参考になりました。

    私としましては、IIS Smooth Streaming に期待したいと思います。

    2008年12月17日 6:36
  •  explasm さんからの引用

    私としましては、IIS Smooth Streaming に期待したいと思います。

     

    体験環境だけでしたら、Expression Encoder 2 SP1とSilverlight 2で作れます。

    Expression Encoder 2 SP1からは、Silverlight 2のメディアプレイヤーのテンプレートが用意されていて、そのプレイヤーはSmooth Streaming (Adaptive Streaming)をサポートしています。Expression Encoder 2 SP1を実行しているマシンで起動するテスト用のWebサーバーはSmooth Streaminのコンテンツを配信できるようになっています。

     

    念のため、ダウンロードの用のリンクを載せておきます。

    Expression Encoder 2試用版

    http://www.microsoft.com/downloads/details.aspx?FamilyID=a04dcc8c-9db7-41cb-a27c-08cbeb0a01ba&DisplayLang=ja

    Expression Encoder 2 SP1

    http://www.microsoft.com/downloads/details.aspx?FamilyID=a29be9f9-29e1-4e70-bf67-02d87d3e556e&DisplayLang=ja

     


    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年12月17日 9:40
  • お世話になります。

    原因はわかりませんが、たまたま見れなかったようです。

    再生できました。

     

    本題の件ですが、プロキシが原因でした。

    ご対応ありがとうございます。

    2009年1月9日 5:14
  • こんにちは、フォーラムオペレータ大久保です。

    tomimatsu さん、フォーラムのご利用ありがとうございます。
    本スレッドですが、tomimatsu さんの状況とは一致しなかったものの、かなり有用な情報がたくさんあると思いましたので、それらを「回答としてマーク」させていただきました。
    (tomimatsu さんの問題解決のお知らせも、貴重な情報のひとつと思います)

    また何かありましたら MSDN フォーラムをご利用ください!

    マイクロソフト株式会社 フォーラム オペレータ 大久保 直美
    2009年2月26日 1:48