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

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

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

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

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

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

Здравствуйте форумчане, как уже было написано в одной из тем, я столкнулся с проблемой переключения каналов на STB, а конкретнее не могу переключиться на 2 и 3-значные каналы, вот есть кусочек кода который реализовывает переключения каналов с 0 до 9, подскажите как реализовать переключения дальше
PHP код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html><head>
<
script language="JavaScript">

var 
url location.href;
var 
ss url.split"=" );
var 
PlayerInstanceID ss[1];
var 
mp = new MediaPlayer();
var 
NativePlayerInstanceID = -1;
var 
bindresult;
';

$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 
"
    "
;
}

echo 
'
window.document.onkeypress = function(keyEvent) 
{
    var muteFlag;
    var volume;
    keyEvent = keyEvent ? keyEvent : window.event;
    var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;

        else if( keyvalue == 49 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 1;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 50 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 2;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 51 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 3;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 52 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 4;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 53 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 5;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 54 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 6;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 55 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 7;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 56 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 8;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 57 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 9;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 48 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 0;
        mp.joinChannel(currChNum); 
sSsantasSs вне форума Ответить с цитированием
Старый 21.06.2010, 18:41   #2
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Давайте сначала немного оптимизируем вот эту часть
PHP код:
window.document.onkeypress = function(keyEvent
{
    var 
muteFlag;
    var 
volume;
    
keyEvent keyEvent keyEvent window.event;
    var 
keyvalue keyEvent.which keyEvent.which keyEvent.keyCode;
        var 
j=0;
        for (
i=48;i<58;i++){
          if ( 
keyvalue ==i) {
              
j++; 
              
//currChNum вот в данный момент чему равен currChNum ? 
              
mp.leaveChannel(currChNum);
          
currChNum j;
          
mp.joinChannel(currChNum);
          }
        }
 } 
slips вне форума Ответить с цитированием
Старый 21.06.2010, 18:46   #3
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Цитата:
Сообщение от sSsantasSs Посмотреть сообщение
PHP код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html><head>
<
script language="JavaScript">

var 
url location.href;
var 
ss url.split"=" );
var 
PlayerInstanceID ss[1];
var 
mp = new MediaPlayer();
var 
NativePlayerInstanceID = -1;
var 
bindresult;

[
B]';[/B] //<- вот это что такое ? 

$firstCh = $_GET['
firstCh'];
if(strlen($firstCh) == 0) $firstCh = "0";

echo "var chCount = ".$channelCount.";";
echo "
var currChNum = ".$firstCh.";
channelitem = new Array();
"; //<- вот это что такое ? видимо вы где то echo пропустили если вы выводите JS именно так 

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 
" //<-вот этого вообще смысл не понятен 
    "
;
}

echo 
' //<-ещё один echo а где закрывается то он ? 
window.document.onkeypress = function(keyEvent) 
{
    var muteFlag;
    var volume;
    keyEvent = keyEvent ? keyEvent : window.event;
    var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;

        else if( keyvalue == 49 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 1;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 50 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 2;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 51 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 3;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 52 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 4;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 53 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 5;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 54 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 6;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 55 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 7;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 56 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 8;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 57 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 9;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 48 )
    {
        mp.leaveChannel(currChNum);
        currChNum = 0;
        mp.joinChannel(currChNum); 
Давайте весь код
slips вне форума Ответить с цитированием
Старый 22.06.2010, 08:00   #4
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

не бейте сильно по хребту, код писали китайцы)
полный код прикрепил, так как он слишком длинный
Вложения
Тип файла: txt playchannel.txt (7.5 Кб, 137 просмотров)
sSsantasSs вне форума Ответить с цитированием
Старый 22.06.2010, 08:08   #5
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

slips, спасибо Вам большое за помощь, по вашему сообщению выложил полный код
sSsantasSs вне форума Ответить с цитированием
Старый 22.06.2010, 09:47   #6
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Цитата:
Сообщение от slips Посмотреть сообщение
Давайте сначала немного оптимизируем вот эту часть
PHP код:
window.document.onkeypress = function(keyEvent
{
    var 
muteFlag;
    var 
volume;
    
keyEvent keyEvent keyEvent window.event;
    var 
keyvalue keyEvent.which keyEvent.which keyEvent.keyCode;
        var 
j=0;
        for (
i=48;i<58;i++){
          if ( 
keyvalue ==i) {
              
j++; 
              
//currChNum вот в данный момент чему равен currChNum ? 
              
mp.leaveChannel(currChNum);
          
currChNum j;
          
mp.joinChannel(currChNum);
          }
        }
 } 
ну исходя из того, что Вы написали currChNum=0, в данный момент
sSsantasSs вне форума Ответить с цитированием
Старый 22.06.2010, 15:11   #7
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

А как вы считаете как event должен понимать что пользователь хочет нажать ещё раз клавишу 1 например, и понять что он должен обработать 11 а не 1. ? Я вот лично себе это особо не представляю так как кода 11 как такого не существует.
Может стоит сделать кнопки или ссылки двузначные чтобы визуально переключаться а не отслеживать нажатие клавиш?
slips вне форума Ответить с цитированием
Старый 22.06.2010, 15:17   #8
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Цитата:
Сообщение от slips Посмотреть сообщение
А как вы считаете как event должен понимать что пользователь хочет нажать ещё раз клавишу 1 например, и понять что он должен обработать 11 а не 1. ? Я вот лично себе это особо не представляю так как кода 11 как такого не существует.
Может стоит сделать кнопки или ссылки двузначные чтобы визуально переключаться а не отслеживать нажатие клавиш?
вариант ссылок или кнопок нам в принципе не подходит. Вы считаите что отследить нажатие клавиш не реально или всё таки есть какой нибудь способ это реализовать? если не сложно может пообщаемся в ICQ или mailagent?
sSsantasSs вне форума Ответить с цитированием
Старый 22.06.2010, 15:23   #9
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Я понимаю что вам такой вариант не подходит.
Первое что приходит в голову так это поставить ограничение времени т.е. например 5 секунд.
Алгоритм такой:
1. Нажимаем 1 проверяем значение переменной ну например chk(boolean) если не прошло 5 секунд она активна если нет мы её включаем и ждём 5 секунд
2. Прошло 5 секунд ничего не произошло, вспоминаем какая была нажата клавиша до запуска и отрабатываем нужное переключение.
3. Не прошло 5 секунд но была нажата следующая клавиша запоминаем её (скорее всего это будет массив клавиш).

Я сейчас на работе а на работе у меня ничего из выше перечисленного нет к сожалению так что только когда я буду дома.

Последний раз редактировалось slips; 22.06.2010 в 15:25. Причина: редактирование
slips вне форума Ответить с цитированием
Старый 22.06.2010, 15:29   #10
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Цитата:
Сообщение от slips Посмотреть сообщение
Я понимаю что вам такой вариант не подходит.
Первое что приходит в голову так это поставить ограничение времени т.е. например 5 секунд.
Алгоритм такой:
1. Нажимаем 1 проверяем значение переменной ну например chk(boolean) если не прошло 5 секунд она активна если нет мы её включаем и ждём 5 секунд
2. Прошло 5 секунд ничего не произошло, вспоминаем какая была нажата клавиша до запуска и отрабатываем нужное переключение.
3. Не прошло 5 секунд но была нажата следующая клавиша запоминаем её (скорее всего это будет массив клавиш).

Я сейчас на работе а на работе у меня ничего из выше перечисленного нет к сожалению так что только когда я буду дома.
Кстати об этом я и думаю сейчас, но так как познания данного вида языка мне мало знакомы, я прошу помощи на этом форуме. Наша компания была бы очень благодарна Вам за помощь в решение этой проблемы, давайте пообщаемся позже, как будет у Вас время. Всем большое спасибо, кто хотя бы прочитал данную тему...
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