0
<< предыдущая заметкаследующая заметка >>
05 мая 2020
Ребят, я вам немного поржать принёс

Теперь закадровый смех стал доступен как никогда! Специально для ваших рабочих видеочатов, онлайн-уроков, домашних скандалов или споров на кухне о политике! Просто включите и наслаждайтесь.

Скриптик очень простой, вот ссылка:

https://lleo.me/test/gaga.htm

Я что-то не пойму, может ли он работать по прямой ссылке — по http у меня точно отказывается давать доступ, а по https вроде запустился. Если он у вас не работает из-за политики безопасности браузера, то скачайте его себе на диск и открывайте оттуда. Я открывал его с диска в Firefox, Opera, Chrome под Линуксом, работает.

[показать код gaga.htm]
<html><body onload='mp3_preload()'><!-- (cЛеонид Каганов http://lleo.me -->
<center>
<
h1>ЗАКАДРОВЫЙ СМЕХ</h1>
<
p><table border=0 width=400>
<
tr><td>audio </td><td width=90%><img id='summ' src="https://lleo.me/dnevnik/design/img/golo.gif" style="height:10px !important; width:0px"></td></tr>
<
tr><td>silence </td><td><img id='SIL' src="https://lleo.me/dnevnik/design/img/golo.gif" style="height:10px !important; width:0px"></td></tr>
<
tr><td>noise </td><td><img id='GOL' src="https://lleo.me/dnevnik/design/img/golo.gif" style="height:10px !important; width:0px"></td></tr>
</
table>
<
p><input type='button' value='ГаГа' onclick='laught_go()' style='width:10%; height:10%; border-radius:100%'>
</
center>

<
script>
var 
NOISE_LIM 5// порог чувствительности шума (все что выше - шум)
var SIL_N 30// число циклов паузы, после которой смех
var GOL_N 60// сколько циклов надо шуметь, чтобы после раздался смех

var SIL=0,GOL=0,laught_arr=[1,2,3,4,5,6,7,8,9,10,11,12,13,14],laught_k=laught_arr.length;

function 
mp3_preload() { for(var i in laught_arrplaysi(laught_arr[i],1); }

function 
shuffle(a) { for(var i=a.length-1;i>0;i--) { var j=Math.floor(Math.random()*(i+1)),temp=a[i];a[i]=a[j];a[j]=temp; } }

function 
laught_go() { if(laught_k >= laught_arr.length) { shuffle(laught_arr); laught_k=0; } playsi(laught_arr[laught_k++]); }

function 
idd(id){ return (typeof(id)=='object' id : ( document.getElementById(id) || false ) ) }

function 
playsi(urli,silent){ var id='playsi_'+urliurl='https://lleo.me/design/timem/people-laughing-'+urli+'.mp3';
    var 
s="<audio style='position:absolute;width:1px;height:1px;overflow:hidden;left:-40px;top:0;opacity:0'"+(silent?'':" autoplay='autoplay'")+" src=\""+url+"\"></audio>";
    if(
idd(id)) return idd(id).innerHTML=s;
    var 
div=document.createElement('DIV'); div.id=iddiv.innerHTML=sdocument.body.appendChild(div);
}

navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);

navigator.getUserMedia(
    { 
audiotruevideofalse },
    function (
stream) {
        var 
AudioContext window.AudioContext || window.webkitAudioContext,
        
ctx = new AudioContext(),
        
source ctx.createMediaStreamSource(stream),
        
analyser ctx.createAnalyser(),
        
processor ctx.createScriptProcessor(102411),
        
data;

        
source.connect(analyser);
        
source.connect(processor);
        
// analyser.connect(ctx.destination);
        
processor.connect(ctx.destination);

        
data = new Uint8Array(analyser.frequencyBinCount);
        
processor.onaudioprocess = function (){
             
analyser.getByteFrequencyData(data);
        var 
summ=0; for(var i in datasumm+=data[i]; summ=Math.floor(summ/data.length);

        
GOL=Math.min(GOL,300);
        
SIL=Math.min(SIL,300);
        
idd('summ').style.width=summ+'px';
        
idd('SIL').style.width=SIL+'px';
        
idd('GOL').style.width=GOL+'px';

        if(
SIL SIL_N && SIL GOL 3GOL=0;

        if(
summ NOISE_LIM) { SIL=0GOL++; }
        else { 
SIL++;
            if(
SIL SIL_N && GOL GOL_N) { SIL=0GOL=0;
            
laught_go();
            
setTimeout("SIL=GOL=0;",1000);
            
setTimeout("SIL=GOL=0;",2000);
            
setTimeout("SIL=GOL=0;",3000);
            
setTimeout("SIL=GOL=0;",4000);
            }
        }
        }
    },function(
error){}
);
</
script>
</
body></html>


Пользуясь случаем, напоминаю, что:

Завтра, 6 мая с 21:00 до 22:00 я буду читать для вас стихи посредством Zoom.

Ссылка на мероприятие: https://leikozunet.timepad.ru/event/1305328/

Мероприятие благотворительное и проводится по билетам: прошу вас пожертвовать 200, 500 или больше рублей в «Фонд борьбы с лейкемией», больным сейчас особенно необходима ваша помощь. Ведь когда «Фонду борьбы с лейкемией» нужна наша с вами помощь — это гораздо лучше, чем если было бы наоборот.

Буду читать поэму Уильяма Шекспира «Отелло» в переводе Корнея Ивановича Чуковского, которой нет в сети и я ее читаю только на концертах, а также другие стихи и "карантинки".

Читать когда не слышишь реакции зала трудно, поэтому по крайней мере "карантинки" буду читать с этим закадровым смехом. Опробуем, так сказать, скрипт на боевом дежурстве!


PS: Открыл скрипт с мобильника с Андроида - работает, сцуко! Чуть подтормаживает конечно. Все параметры по нужному соотношению шум/тишина сползли. Надо их по уму через таймер делать. А лучше давать на странице прямо настройки, чтоб каждый мог под себя подкрутить. Но мне пока лень. Если вам не лень, допилите. Только чур без всяких там джквери, фреймворков и прочего навесного говна, чтоб нормальный человек мог открыть один единственный файл.htm и сразу увидеть, что код в нем элементарный, никаких аяксов и бэкдоров, и никто аудио с вашего устройства никуда за пределы не отправляет. Ну и ассортимент смеха надо бы расширить, если Дима Урюпин мне файликов насыпет.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок

Комментарии к этой заметке скрываются - они будут видны только вам и мне.

Оставить комментарий