Вот краткий обзор моего кода.Пользователь нажимает кнопку записи, и он попадает на сервер, чтобы запустить поток наблюдения, и возвращает URL-адрес rtsp, который я хочу воспроизвести на веб-сайте.
Я пробовал подключаемый модуль vlc, но он выглядит ненадежным.следующий код создает перечисленные ниже проблемы.
Любые другие идеи для реализации этой функции приветствуются.
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
res_array = xmlhttp.responseText.split("#");
session_id = res_array[0];
alert(res_array.length);
if (res_array.length == 4)
{
document.getElementById("jsession").innerHTML = xmlhttp.responseText;
rstp_url = res_array[1];
jsession_id = res_array[2];
var vid_tag = '<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"';
vid_tag += ' codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab"' ;
vid_tag += ' width="320" height="240" id="vlc" events="True"> <param name="Src" value=" ' + rstp_url +' " /> ';
vid_tag += ' <param name="ShowDisplay" value="True" /> <param name="AutoLoop" value="False" /><param name="AutoPlay" value="True" />' ;
vid_tag += '<EMBED pluginspage="http://www.videolan.org" type="application/x-vlc-plugin" progid="VideoLAN.VLCPlugin.2" width="320" height="240"' ;
vid_tag +=' autoplay="yes" loop="no" target="'+rstp_url+'" name="vlc"> </EMBED></OBJECT>';
document.getElementById("StopRecording").disabled = false;
document.getElementById("StartRecording").disabled = true;
document.getElementById("StopPlayback").visible = false;
document.getElementById("Playback").disabled = true;
alert(vid_tag);
document.getElementById("video_handler").innerHTML = vid_tag;
document.getElementById("jsession").innerHTML = xmlhttp.responseText;//Update the HTML Form element
}
else
{
alert("Make sure usename,password and deviceref is correct");
}
}
else {
alert("Error during AJAX call. Please try again");
}
}
};
Это следующие проблемы, которые у меня есть.
- Не работает в IE6.
- Воспроизведение потока ненадежно.Иногда играет, а иногда нет.Единственный правильный способ исправить это, кажется, добавить окно оповещения сразу после длины res_array, если поставить отметку
- Даже если попытаться воспроизвести источник звука, появится черный ящик для воспроизведения видео.
PS Будет ли это легче, если я попытаюсь использовать HTML5 и знаю о таких фреймворках, как jquery, но я не могу использовать его в этом проекте.