Я не создаю доказательство концепции, которая показывает пользователю, что если они загружают одно и то же видео в формате .MP4 и OGG, сгенерированный тег видео (с использованием videojs) будет кросс-платформой.Как я могу показать недавно загруженное видео?
Я успешно создал файловый загрузчик с помощью конструктора и загрузил файлы до 512 МБ в папку «файлы» внутри решения, но я хотел бы знать, как обновить веб-страницу с помощью сгенерированного тега видео.
Это тег Я хотел бы изменить:
<video id="example_video_1" class="video-js vjs-default-skin"
controls preload="auto" width="640" height="264"
poster="http://video-js.zencoder.com/oceans-clip.png"
data-setup='{"example_option":true}'>
<source id="mp4" src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' />
<source id="webm" src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm' />
<source id="ogg" src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg' />
</video>
Мой метод сохранения:
protected void btnUpload_Click(object sender, EventArgs e){
//check to make sure a file is selected
if (FileUpload1.HasFile) {
//create the path to save the file to
string fileName = Path.Combine(Server.MapPath("~/Files"), FileUpload1.FileName);
//save the file to our local path
FileUpload1.SaveAs(fileName);
}
}
EDIT:
Я почти есть решение прямо сейчас. так или иначе это не соответствует правильному пути. Решение, которое я создал:
<script type="text/javascript">
var _strSource = '<ASP:LITERAL runat="server" id="litSource" />';
window.onload = function()
{
if (_strSource != "") {
alert(_strSource);
var video = document.getElementById('objVideo');
var sources = video.getElementsByTagName('source');
alert(sources[0].src);
sources[0].src = _strSource;
video.load();
video.play();
}
}
</script>
А на стороне сервера:
protected void btnUpload_Click(object sender, EventArgs e){
//check to make sure a file is selected
if (FileUpload1.HasFile) {
//create the path to save the file to
string fileName = Path.Combine(Server.MapPath("/Files"), FileUpload1.FileName);
//save the file to our local path
FileUpload1.SaveAs(fileName);
this.litSource.Text = fileName.Replace("\\", "\\\\");
}
}
Я также добавил это в моем web.config:
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".ogg" mimeType="video/ogg" />
<mimeMap fileExtension=".webm" mimeType="video/webm" />
<mimeMap fileExtension=".m4v" mimeType="video/m4v" />
</staticContent>
Теперь он изменяет путь к (в мой случай) C: \ Projects \ FileUploadTest \ FileUploadTest \ Files \ c4b3ae2189ea.ogg. Это фактический путь, на который загружается файл, но браузер не может достичь этого пути. Кто-нибудь есть идея, как достичь этого?
Я думаю, что это резервная вспышка, которая кэшируется. Даже если я установлю свой браузер так, чтобы он ничего не кешировал, все равно это все равно. Закрытие браузера и повторное открытие - это обходной путь, но кто-нибудь знает, могу ли я сбросить Flash-кеш? –
Примечание: он работает в Chrome (с использованием Chrome, вы не получаете резервную копию Flash) –