€
$
₴
₽
EN
RU
Vmeste.EU
Лента
Каталог
Файлы
Форумы
Услуги
Основное
Radiotalk
Пользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90 •
Посмотреть все темы
[Обсуждение] Веб камеры в чате
1
...
6
7
8
...
19
2970
удалён
@Foggy
07.10.2012
Слушайте, я, наверно, не гениален, но что на счёт идеи сделать возможность видео общения тет-а-тет. Так, чтоб при этом не менялся статус и другие не знали, что ты сейчас показываешь видео.
Собственно, это просили пользователи. Многим неудобно отказывать в показе своего видео кому-то одному, когда они показывают его кому-то другому.
В идеале хотелось бы довести это до видео-звонков как в скайпе или (что ближе к замыслу) как в контакте.
2615
Сергей
@Pegass
07.10.2012
Foggy
пишет:
Слушайте, я, наверно, не гениален, но что на счёт идеи сделать возможность видео общения тет-а-тет. Так, чтоб при этом не менялся статус и другие не знали, что ты сейчас показываешь видео.
Собственно, это просили пользователи. Многим неудобно отказывать в показе своего видео кому-то одному, когда они показывают его кому-то другому.
В идеале хотелось бы довести это до видео-звонков как в скайпе или (что ближе к замыслу) как в контакте.
Да да, мы просили Диму дать на мещё пару статусов под это дело, но .... Дима, просим снова)))
1007
BETEPAH
@BETEPAH
07.10.2012
Foggy
пишет:
сделать возможность видео общения тет-а-тет
Решали через костыли
здесь
20090
Dimitry
@Dimitry
07.10.2012
Я что-то не совсем понял смысла, ну стоит статуст вещаю приватно и можешь общаться с кем хочешь, в чём проблема?
2615
Сергей
@Pegass
07.10.2012
Dimitry
, Смотри чего хотим
1- вещаю публично (реализовано)
2 - Вещаю приватно, каждый может запросить просмотр(реализовано)
3 - Вещаю приватно, но видят сей факт только те кому я сам отправил кнопку просмотра(реализовано в моем чате вместо 2 пункта
4 - Андрей вон звонки хочет, всем остальным на поколдовать)))
Так вот хочется чтобы возможны были все варианты,сейчас мы для реализации каких то идей вынуждены чем то жертвовать, а не хочется)))
7094
Dim
@Render
07.10.2012
Dimitry
пишет:
Я что-то не совсем понял смысла, ну стоит статуст вещаю приватно и можешь общаться с кем хочешь, в чём проблема?
Проблема так понимаю в заметности "злых деяний".
К примеру, понравилась тебе девушка в чате, вы договорились "повещать друг другу", но вот незадача, ты женат в чате уже, да и жена в чате. Как быть?
Вот для этого видимо, некоторым необходим режим незаметного включения вещания 😁
2615
Сергей
@Pegass
07.10.2012
Render
, ну не только моим всем такая вещь пришлась по душе))) Чатлане, они же дурные, они же общение в чате на реал перекладывают, всерьёз влюбляются, обижаются, сорятся....
1007
BETEPAH
@BETEPAH
07.10.2012
Render
пишет:
Проблема так понимаю в заметности "злых деяний".
К примеру, понравилась тебе девушка в чате, вы договорились "повещать друг другу", но вот незадача, ты женат в чате уже, да и жена в чате. Как быть?
Вот для этого видимо, некоторым необходим режим незаметного включения вещания 😁
Не обязательно для этого. У себя в чате я сделал по другой причине.
Задача. Дана девушка Д, и парни П и М. Девушка хочет включить вещание для одного П. Она может конечно включить приватное вещание, но боится, что М постучится с просьбой подключения и её отказ на просьбу может обидеть М.
Решение. Девушка Д включает незаметное вещание и отправляет парню П ссылку на него. М даже не в курсе, что у девушки включена камера и никаких обид и все счастливы.
20090
Dimitry
@Dimitry
07.10.2012
как вариант ввести ещё один статус, вещать скрытно, например 97
1007
BETEPAH
@BETEPAH
07.10.2012
Dimitry
пишет:
как вариант ввести ещё один статус, вещать скрытно, например 97
Это было бы здорово
😉
20090
Dimitry
@Dimitry
07.10.2012
вроде сделал, пробуйте
573
Max
@JackOFF
07.10.2012
На главном чате не вижу нового статуса.
2615
Сергей
@Pegass
07.10.2012
JackOFF
пишет:
На главном чате не вижу нового статуса.
Скажем так на этом статусе будет работать вебка, а вот как его использовать пока что каждый решает сам для себя, потом скинемся идеями, мыслями и наработками Чуть позже положу готовое решение для этого статуса
2615
Сергей
@Pegass
07.10.2012
Личное вещание - к стандартному скрипту добавить зелёное
Установка для новой безфреймовой версии
1. В шаблоне чат внутри добавляем в любое место код для вывода вебок, а также в селекторе статусов добавляем статусы вебки - синии строки:
<div id=cams>
<div id=mywebcam style="display:none;"> </div>
</div>
<select style='float:right;' name=setstatus onchange="parent.gettime=new Date().getTime();parent.setstatus(this.value);">
<option value=0>свободен
<option value=1>работаю
<option value=2>в привате
<option value=3>читаю
<option value=4>скоро буду
<option value=5>меня нет
<script>if(webcam) document.write("<option value=97>вещаю лично");</script>
<script>if(webcam) document.write("<option value=98>вещаю публично");</script>
<script>if(webcam) document.write("<option value=99>вещаю приватно");</script>
</select>
2. В скриптах чата в Настройках никлиста и статусов, после списков stn stn2 icqtxt добавим этот код:
/* Включаем вебкамеры, прописываем статус 100 и загружаем модуль */
var webcam=1;
var web_priv=0;
stn2[97] =stn2[0];
/* icqtxt[97] не указываем, чтобы сообщение о смене статуса не отправлялось в чат))) */
stn2[98] ="<img src=http://mpchat.com/blank/img/status/webcam.gif title='нажмите для просмотра публичного вещания' style='border:0;'>";
icqtxt[98]="меняю статус на -> вещаю публично <img src=http://mpchat.com/blank/img/status/webcam.gif title=публично>";
stn2[99] ="<img src=http://mpchat.com/blank/img/status/webcam2.gif title='нажмите для просмотра приватного вещания' style='border:0;'>";
icqtxt[99]="меняю статус на -> вещаю приватно <img src=http://mpchat.com/blank/img/status/webcam2.gif title=приватно>";
document.write("<"+"script src=http://mpchat.com/blank/webcam-new.js></"+"script>");
3. Далее в функции format /* [Функции - формирования никлиста] */ => /* Добавление ника в таблицу участников */ находим строку:
if(stn2[stat2]==null) icqst=''; else icqst=stn2[stat2];
ниже добавляем:
/* Включение вебкамер */
if(webcam) {
if(stat2==98) icqst="<a href=# onclick='loadvideo(\"webcam"+nick+"\",webcamhost,\""+nick+"\",0); return false;'>"+icqst+"</a>";
if(stat2==99) icqst="<a href=# onclick='parent.hidden.location.href=\"index.php?inc=write&"+ parent.yourkey+"&r="+Math.random()+"&text=/privat "+ nick +": privatcam\";return false;'>"+icqst+"</a>";
if(nick==mynick && loaded) {
if(stat2==98) loadvideo("mywebcam",webcamhost,nick,1);
else if(stat2==99) loadvideo("mywebcam",webcamhost,nick,1,privatcamkey);
else if(stat2==97) loadvideo("mywebcam",webcamhost,nick,1,privatcamkey);
else loadvideo("mywebcam","");
}}
4. Далее ниже в скриптах чата в функции f() добавим синее после указанного кода:
/* Автоответчик */
if(loaded==1 && tonick==mynick && nick!=mynick) {
var autotext=document.fmsg.text0.value;
var obj=document.fmsg.autotext;
if(autotext && obj && obj.checked) {
parent.hidden.location.href='index.php?inc=write&'+parent.yourkey+'&text=/privat '+nick+': Автоответчик -> '+autotext+'&r='+Math.random();
}}
/* Разрешение на приватный просмотр вебкамеры */
if(webcam && cmd==1) {
if(text.indexOf("sendcam")!=-1) {var key=text.split("sendcam"); text=text.replace("sendcam"+key[1],"Я хочу показать тебе себя."); if(tonick==parent.mynick) text+=" <a href=# onclick='parent.loadvideo(\"webcam"+nick+"\",\""+webcamhost+"\",\""+nick+"\",0,\""+key[1]+"\"); return false;'>Начать просмотр</a>";}
if(text.indexOf("nocam")!=-1) text=text.replace("nocam","Просмотр не разрешен.");
if(text.indexOf("yescam")!=-1) {var key=text.split("yescam"); text=text.replace("yescam"+key[1],"Просмотр разрешен."); if(tonick==mynick) text+=" (<a href=# onclick='parent.loadvideo(\"webcam"+nick+"\",\""+webcamhost+"\",\""+nick+"\",0,\""+key[1]+"\"); return false;'>Начать просмотр</a>)";}
if(text.indexOf("privatcam")!=-1) {text=text.replace("privatcam","Прошу разрешить просмотр вещания."); if(tonick==mynick) text+=" (<a href=# onclick='parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&r="+Math.random()+"&text=/privat "+nick+": yescam\"+parent.privatcamkey;return false;'>Да</a> | <a href=# onclick='parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&r="+Math.random()+"&text=/privat "+nick+": nocam\";return false;'>Нет</a>)";}
}
5. Если вы используете автосмену статуса away(), то нужно добавить синюю строку в функции goaway() (в скриптах чата в разделе функции нижнего фрейма):
var gettime=new Date().getTime();
var laststatus=0;
function goaway() {
if(
laststatus==97 ||
laststatus==98 || laststatus==99) return;
6. Чуть ниже в скриптах чата обновим функцию смены статуса setstatus()
/* Функция ручного изменения статуса */
var privatcamkey=0;
function setstatus(status) {
laststatus=status;
var addkey=""; privatcamkey=0;
if(status==99) {privatcamkey=Math.floor((Math.random()*1000000)+1); addkey=" "+privatcamkey; }
web_priv=0;if(status==97) {web_priv=1; privatcamkey=Math.floor((Math.random()*1000000)+1); addkey=" "+privatcamkey; }
parent.hidden.location.href='index.php?inc=write&'+parent.yourkey+'&text=/status '+status+addkey+'&r='+Math.random();
document.getElementsByName("setstatus")[0].value=status;
document.fmsg.text0.focus();
}
7. Далее в функции format /* [Функции - формирования никлиста] */ => /* Добавление ника в таблицу участников */ необходимо пристроить такую кнопку
set_sndvid="<img onclick='if (web_priv==1) { parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&r="+Math.random()+"&text=/privat "+nick+": sendcam\"+privatcamkey;}else{alert(\"Сначала включите личное вещание\");}' style='cursor:pointer;' title='Отправить ссылку на просмотр моего видео' src='http://radiofull.ru/Style_two/img/userlist/button/snd_vid.png'/>";
ЗЫ
1)странная переменная web_priv появилась в связи с тем, что когда я это реализовывал у меня отчего то не удавалось проверить текущий статус, теоретически можно проверять его в пункте 7 и избавиться от переменной, но мне лень проверять)))
2) вместо кнопки к каждому нику можно организовать пункт из селектора типа сообщений, но мне опять таки лень думать, ночь уже))))
Отредактировано Pegass -
08.10.2012
2970
удалён
@Foggy
08.10.2012
Pegass
, ты забыл в 3 пункте свою функцию loadcamvideo в loadvideo переименовать. В остальном всё отлично работает!) Огромное человеческое спасибо!
Есть всё-таки проблемка, выдающая это дело. В чат отправляется сообщение о смене на статус онлайн.
А как послать приглашение инвизеру? Если его ник если в поле tonick
p.s. а качество видео никак изменить?
2615
Сергей
@Pegass
08.10.2012
Исправил. Ну собственно, чтобы послать приглашение невидимке надо разработать кусок кода по отправке данного приглашения с помощью поля cmd, в течении дня подумаю)))
596
Сергей
@Князь_Пипецкий
08.10.2012
Когда включаешь "вещать лично" то все происходит скрытно 😀 - эт хорошо.
Но когда отключаешь вещание - в чат выводится - меняет статус на "свободен"
Чатлане быстро выпасут, от чего это ты вдруг свободен стал 😀
Но вообще, таки да! Функция нужная и работает как надо 😀
Спасибо!
Отредактировано Князь_Пипецкий -
08.10.2012
2615
Сергей
@Pegass
08.10.2012
Другой вариант отправки кнопки просмотра
Скрипты - Функции нижнего фрейма Добавляем
красное
/* Обрабатывает строку ввода текста для отправления */
var gettime=0;
var oldmsg="";
function msg_send() {
var form=document.fmsg;
var msg=form.text0.value;
if(form.cmd.value=='/camcam ')
{
if (web_priv==0) {form.text0.value='Включите личное вещание'; return false;}
else if (!form.tonick.value) {form.text0.value='Выберите кому хотите отправит кнопку просмотра'; return false;}
else {msg="/privat " + form.tonick.value + "sendcam" + privatcamkey; form.cmd.value=''; }
}
else
{
if (form.tonick) {if(form.tonick.value!='Всем') {msg=form.tonick.value+msg;}}
if (form.cmd) {msg=form.cmd.value+msg; if(form.cmd.value!='/privat ') form.cmd.value='';}
if (msg=='') return false;
msg_cmd='';msg_nick='';msg_text='';
if(msg.charAt(0)=="/") {
msg_cmd=msg.substr(0,msg.indexOf(" ")+1);
msg=msg.substr(msg.indexOf(" ")+1);
}
msg_nick=msg.substr(0,msg.indexOf(": ")+1);
msg_text=msg.substr(msg.indexOf(": ")+1);
if(msg_nick.search(/ /)!=-1) {msg_nick=""; msg_text=msg;}
msg_text=abc_flood(msg_text);
msg_text=translit(msg_text);
msg=msg_cmd+msg_nick+msg_text;
if(msg==oldmsg) { confirm ("Повторять нехорошо!"); return false;}
oldmsg = msg;
}
form.text0.value="";
form.text0.focus();
form.text.value=msg;
pos=amess.length; amess[pos]=msg;
gettime=new Date().getTime();
}
Чат внутри Добавляем
красное
<script>
document.write("<input type=hidden name=nick value="+parent.mynick+">");
document.write("<input type=hidden name=id value="+parent.myid+">");
document.write("<select name=cmd class=text>");
document.write("<option value=''>-=cказать=-");
document.write("<option value='/privat '>приватно");
document.write("<option value='/privat2 '>приват окно");
document.write("<option value='/me '>сообщение");
document.write("<option value='/call '>вызвать");
document.write("<option value='/camcam '>камера лично");
if(parent.alerter[parent.mynick]) document.write("<option value='/alert '>алерт-вызов");
if(parent.clearer[parent.mynick]) document.write("<option value='/clear '>очистить");
if(parent.reloader[parent.mynick]) document.write("<option value='/reload '>перезагрузить");
if(parent.ignorer[parent.mynick]) document.write("<option value='/ignore '>полный игнор");
if(parent.admin==1) {
document.write("<option value=''>-=модерация=-");
document.write("<option value='/kill '>удалить");
document.write("<option value='/kick '>выпнуть");
document.write("<option value='/windows '>закидать окнами");
document.write("<option value='/warn '>предупредить");
}
document.write("</select>");
Работает просто - выбираем кому, в селекторе выбираем "Камера лично" и жмём "Отправить" в тексте можно ничего не писать толку всё равно мало)))
2615
Сергей
@Pegass
08.10.2012
Князь_Пипецкий
пишет:
Когда включаешь "вещать лично" то все происходит скрытно 😀 - эт хорошо.
Но когда отключаешь вещание - в чат выводится - меняет статус на "свободен"
Чатлане быстро выпасут, от чего это ты вдруг свободен стал 😀
Но вообще, таки да! Функция нужная и работает как надо 😀
Спасибо!
Фиксится просто - удали сообщение о смене статуса на свободен)))
596
Сергей
@Князь_Пипецкий
08.10.2012
😀 спасибо ....теперь точно все в порядке 😀