基本的なアプリケーションを作成し、Azure にアップロードしました。ユーザーがリストから選択して、それぞれのビデオを表示できるように、ビデオを埋め込みたい。たとえば、映画を選んでその予告編を見るなどです。
MVC ソリューションに 2 つのフォルダーを作成しました。「/Posters」には各ビデオの背景として機能する .jpg ファイルが含まれ、「/Videos」には各ビデオのソースとして .mp4 ファイルが含まれます。
.cshtml スニペットは次のとおりです。
<video controls="controls" poster="@Model.PosterPath" width="640" height="360">
<source src="@Model.VideoPath" type="video/mp4" />
<object type="application/x-shockwave-flash" data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" width="640" height="360">
<param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
<param name="flashVars" value="config={'playlist':['@Model.PosterUrl',{'url':'@Model.VideoUrl','autoPlay':false}]}" />
<img alt="@Model.AltText" src="@Model.PosterPath" width="640" height="360" title="No video playback capabilities" />
</object>
</video>
公開後、ビデオ要素が存在し、ポスターが正しく表示されますが、再生ボタンをクリックすると「ストリームが見つかりません」というエラーが表示されます。
次のように、VideoPath と PosterPath の値に相対パスを使用しています。
../../Videos/myvideo.mp4
VideoUrl と PosterUrl の値は、':' と '/' の値を置き換えた絶対パスである必要があるため、'http://mywebsite.azurewebsites.net/Videos/myvideo.mp4' は次のように表示されます。
http%3A%2F%2Fmywebsite.azurewebsites.net%2FVideos%2Fmyvideo.mp4
パス (相対パスと絶対パス) が正しくない可能性があることは明らかです。しかし、ポスターは正しく表示されるので、別の理由があるのではないかと考えています。
ビデオが正しく公開されていることをテストする方法はありますか? これが非常に基本的な質問である場合はお詫びします。これは私の最初の Azure アプリケーションです :-)
ありがとう