Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2010, 17:23   #51
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Что конкретно не получается сейчас? А допустим, если сделать по нажатию клавиши "A" на клаве, чтобы переключалось на нужный канал (выберите какой-то для теста) - так работает?
Код:
else if( keyvalue == 97 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 11; // к примеру
        mp.joinChannel(currChNum);
    }
Само переключение будет работать, если так сделать? Или просто попробуйте переключиться на двузначный канал по нажатию 0 - будет работать?
Подойдет ли вам вариант такой: если две цифры нажаты с промежутком меньше стольких-то мсек, то переключается на двузначный канал?
Вот именно что, функция будет работать задай ты ей хоть 32 или 135 канал
Код:
else if( keyvalue == 48 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 11; // к примеру или любое число которое есть в БД 
        mp.joinChannel(currChNum);
    }
sSsantasSs вне форума Ответить с цитированием
Старый 26.06.2010, 17:34   #52
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Т.е., само переключение работает, проблема лишь в эмуляции вызова 2-значного канала с помощью клавиатуры? Так?
И почему вы не отвечаете на второй вопрос?
motorway вне форума Ответить с цитированием
Старый 26.06.2010, 21:37   #53
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Т.е., само переключение работает, проблема лишь в эмуляции вызова 2-значного канала с помощью клавиатуры? Так?
И почему вы не отвечаете на второй вопрос?
Клавиатура здесь не при чём, всё работает на пульте управления для приставки Set Top-Box, к телевизору. На данный момент пульт управления переключает каналы с 0 по 9.
Цитата:
Подойдет ли вам вариант такой: если две цифры нажаты с промежутком меньше стольких-то мсек, то переключается на двузначный канал?
этот вариант думаю будет приемлем, для нас главное, что бы все каналы переключались с пульта нажатием всего 10 кнопок которые имеют значения от 0 до 9...
Прикрепляю исходный код, который присутствует сейчас.
sSsantasSs вне форума Ответить с цитированием
Старый 26.06.2010, 21:52   #54
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Значит, коды там такие же, как для клавы. Как, интересно, эта приставка понимает Яваскрипт?
То есть, все, что работало бы на странице в Инете, работать и там будет?
motorway вне форума Ответить с цитированием
Старый 26.06.2010, 22:35   #55
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Сделал я кое-что для вас (это только часть кода, остальное можете сами добавить - кстати, ваш последний вариант кода не прикрепился):
в случае, если нажатия между клавишами меньше по времени, чем 1 сек, то включается канал соотв-щий:
Код:
<script>
    
    var pred,ptime,now,dif;
    pred = 0;
    ptime = new Date();

    window.document.onkeypress = function(keyEvent) {
        now = new Date();
        dif = now - ptime;
        document.getElementById('dif').innerHTML = dif;
        document.getElementById('text').innerHTML = pred;

        keyEvent = keyEvent ? keyEvent : window.event;
        var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;
        if (dif < 1000) {
            mp.leaveChannel(currChNum);
            currChNum = String.fromCharCode(pred) + String.fromCharCode(keyvalue);
 // вот тут надо проверить конкатенацию, нормально ли она выполняется
            
            mp.joinChannel(currChNum); 
            

        }
        document.getElementById('text2').innerHTML = keyvalue;
        pred = keyvalue;
        ptime = new Date();

    }

</script>
Предыдущее:<div id="text"> </div>
Нажатое:<div id="text2"> </div>
Разница:<div id="dif"> </div>
Это все будет работать, если поддерживаются теги div и обращения к ним. Если нет, то надо создать в начале кода соотв-ющие переменные
var1,var2,var3.

Проверьте, так работает?
motorway вне форума Ответить с цитированием
Старый 26.06.2010, 23:15   #56
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Спасибо, проверю обязательно как буду на работе. В принципе работало бы и в интернете, только не хочется на бесплатные хостинги выкладывать, как только наш хостинг вновь заработает выложу всё туда.
sSsantasSs вне форума Ответить с цитированием
Старый 26.06.2010, 23:27   #57
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Я просто принцип не очень понимаю, работаете вроде с телевизором, а тут код на PHP и JavaScript. Там еще где-то компьютер что ли?
motorway вне форума Ответить с цитированием
Старый 27.06.2010, 02:48   #58
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Я просто принцип не очень понимаю, работаете вроде с телевизором, а тут код на PHP и JavaScript. Там еще где-то компьютер что ли?
вот, что то похожее на нашу сеть только PBI и коммутаторы у нас другие в сети + в конце идёт STB к телевизору.
sSsantasSs вне форума Ответить с цитированием
Старый 28.06.2010, 14:09   #59
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Сделал я кое-что для вас (это только часть кода, остальное можете сами добавить - кстати, ваш последний вариант кода не прикрепился):
в случае, если нажатия между клавишами меньше по времени, чем 1 сек, то включается канал соотв-щий:
Код:
<script>
    
    var pred,ptime,now,dif;
    pred = 0;
    ptime = new Date();

    window.document.onkeypress = function(keyEvent) {
        now = new Date();
        dif = now - ptime;
        document.getElementById('dif').innerHTML = dif;
        document.getElementById('text').innerHTML = pred;

        keyEvent = keyEvent ? keyEvent : window.event;
        var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;
        if (dif < 1000) {
            mp.leaveChannel(currChNum);
            currChNum = String.fromCharCode(pred) + String.fromCharCode(keyvalue);
 // вот тут надо проверить конкатенацию, нормально ли она выполняется
            
            mp.joinChannel(currChNum); 
            

        }
        document.getElementById('text2').innerHTML = keyvalue;
        pred = keyvalue;
        ptime = new Date();

    }

</script>
Предыдущее:<div id="text"> </div>
Нажатое:<div id="text2"> </div>
Разница:<div id="dif"> </div>
Это все будет работать, если поддерживаются теги div и обращения к ним. Если нет, то надо создать в начале кода соотв-ющие переменные
var1,var2,var3.

Проверьте, так работает?
Здравствуйте проверил работоспособность этого кода, к сожалению он не работает...
sSsantasSs вне форума Ответить с цитированием
Старый 28.06.2010, 15:25   #60
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

И так возможно я не прав, но вот основа без которой не чего не работает
Код:
echo '
window.document.onkeypress = function(keyEvent) 
{
	keyEvent = keyEvent ? keyEvent : window.event;
	var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;

		if( keyvalue == 8 )
	{
		mp.stop();
		mp.leaveChannel(currChNum);
    mp.releaseMediaPlayer(NativePlayerInstanceID);
		location.href = "index.php";	
		window.refresh();
	}
}
а именно клавиша 8 является стартом вшитого проигрывателя, далее идут уже
Код:
	else if( keyvalue == 48 )
	{
		mp.leaveChannel(currChNum);
		currChNum = 0;
		mp.joinChannel(currChNum);
и так далее до 9-го канала, который обозначается 57
тут я вижу подключение к БД которое выводит мне весь список каналов
Код:
$firstCh = $_GET['firstCh'];
if(strlen($firstCh) == 0) $firstCh = "0";

echo "var chCount = ".$channelCount.";";
echo "
var currChNum = ".$firstCh.";
channelitem = new Array();
";

for($i=0;$i<$channelCount;$i++)
{
	$itemindex=$i+1;
	echo "channelitem[".$itemindex."] = 'ChannelID=\"".$i."\",ChannelName=\"".mysql_result($result,$i,2)."\",UserChannelID=\"".mysql_result($result,$i,1)."\",ChannelURL=\"".mysql_result($result,$i,3)."\",TimeShift=\"0\",ChannelSDP=\"\",TimeShiftURL=\"\",ChannelLogURL=\"".mysql_result($result,$i,4)."\",PositionX=\"5\",PositionY=\"5\",BeginTime=\"3\",Interval=\"200\",Lasting=\"100\",ChannelType=\"type1\",ChannelPurchased=\"0\"';	";
	echo "
	";
}
что эта за херня и для чего она нужна я так и не понимаю
Код:
var url = location.href;
var ss = url.split( "=" );
var PlayerInstanceID = ss[1];
var mp = new MediaPlayer();
var NativePlayerInstanceID = -1;
var bindresult;
что я теперь думаю:
1)как можно сделать паузу между нажатием клавиш
2) задать клавишам от 48 до 57 значение от 0 до 9 (сейчас задано не значение а сам канал!!!)
3) что бы за время задержки выполнялось действие
Цитата:
mp.leaveChannel(currChNum);
currChNum = Клавиша + Клавиша + Клавиша ну и тд;
mp.joinChannel(currChNum); //вот эта функция в конце концов и запускает тот или иной канал (вроде как)
4) И в конце концов связать всё это действие, и пологаю что всё заработает так как оно должно быть.
Ниже выложил исходный код, как он был в самом начале.


PS
прошу сильно не возмущаться если, что то написано не верно или не верно понято мной, я не специалист по программированию, я больше работаю с сетями, если будут вопросы в данной теме обязательно помогу.
Вложения
Тип файла: txt playchannel.txt (7.5 Кб, 120 просмотров)

Последний раз редактировалось sSsantasSs; 28.06.2010 в 15:30.
sSsantasSs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi и VLC Player - программное переключение каналов ViNcHeStEr Мультимедиа в Delphi 17 17.01.2010 13:12
Включение\отключение каналов SanekIrk Мультимедиа в Delphi 1 19.10.2009 17:10
Управление компом через пульт тв тюнера. Utkin Свободное общение 3 01.09.2009 18:03
Межпроцессное взаимодействие. Каналы. Zefick Win Api 3 02.03.2009 20:48