Alterar o som de notificação do chat box

3 participantes

Ir para baixo

Tópico resolvido Alterar o som de notificação do chat box

Mensagem por legit-nyck 15.01.23 5:50

Detalhes da questão


Endereço do fórum: https://seudiario.forumeiros.com
Versão do fórum: phpBB2

Descrição


ola a todos por gentileza poderiam inserir o som de campainha ding-dong classico no código a seguir
Código:
window.localStorage && $(window).load(function() {
    var sounds = {
      'future': 'https://illiweb.com/fa/fdf/future.mp3',
      'hal': 'https://illiweb.com/fa/fdf/hal.mp3',
      'secret': 'https://illiweb.com/fa/fdf/secret.mp3',
      };
    var default_sound = sounds['future'];
    var default_freq = 'all';
    var default_when = 'always';
    var default_volume = 100;
 
 
    if(localStorage.cb_sound && !localStorage.cb_sound.indexOf('https://dl.dropboxusercontent.com/u/181621985/')) localStorage.removeItem('cb_sound');
    var a = document.createElement('audio');
    if(!a.canPlayType) return;
    a.volume = Math.min(1, Math.max(0, localStorage.cb_volume||(default_volume/100)));
 
    var origin_send = Chatbox.prototype.send;
    Chatbox.prototype.send = function(params) {
      var m = $.trim($("#message").val());
      if(m.indexOf('/sound')&&m.indexOf('/soudn'))
        return origin_send.call(this, params);
      m = $.trim(m.substr(6)).split(/\s+/,3);
      var bad_apple = false;
      switch(m[0].toLowerCase()) {
        case "":
          if(!a.src) {
            a.src = localStorage.cb_sound||default_sound;
            a.load();
        }
          a.play();
          break;
        case "all":
        case "new":
          localStorage.cb_freq = m[0]; break;
        case "always":
        case "off":
        case "on":
        case "once":
        case "never":
          localStorage.cb_when = m[0]; break;
        case "stop":
          if(!a.paused) a.pause();
          if(!a.ended && a.readyState > 0) a.currentTime = 0;
          break;
        case "pause":
          if(!a.paused) a.pause();
          break;
        case "volume":
          if(m.length>1) {
            localStorage.cb_volume = Math.min(1, Math.max(0, parseFloat(m[1].replace(',','.'))/100));
            a.volume = localStorage.cb_volume;
            break
          }
        default:
          bad_apple = true;
      };
      if(bad_apple) {
        if(m[0] in sounds) {
          m[0]= sounds[m[0]];
        }
        if(m[0]=="default") {
          m[0]=default_sound;
          localStorage.removeItem('cb_sound');
          localStorage.removeItem('cb_freq');
          localStorage.removeItem('cb_volume');
          localStorage.removeItem('cb_when');
          a.volume = Math.min(1, Math.max(0, default_volume/100));
        }
        if(/^https?:\/\/.+/.test(m[0])) {
          localStorage.cb_sound = m[0];
          a.pause();
          a.src = m[0];
          a.load();
          a.play();
        } else {
          var message = $('#message').val();
          alert('/sound [all | new]\n/sound [always | off | on | once | never]\n/sound [stop | pause]\n/sound default\n/sound volume 0-100\n/sound ['+$.map(sounds,function(_,k){return k}).join(' | ')+']\n/sound [http://* | https://*]');
          setTimeout(function(){ $("#message").val(message).select().focus(); }, 100);
          return;
        }
      }
      return $("#message").val('').focus();
    };
 
    $(window).on("focus", function(){ localStorage.removeItem('cb_once'); localStorage.removeItem('cb_blurred') }).on("blur", function(){ localStorage.cb_blurred=1; });
 
    var play_sound = function(){
      if(a.paused || a.ended) {
        if(a.readyState > 0) a.currentTime=0;
        if(!a.src) {
          a.src = localStorage.cb_sound||default_sound;
          a.load()
        }
        a.play()
      }
    };
    var overrided = Chatbox.prototype.refresh;
    Chatbox.prototype.refresh = function(data) {
      if (data.messages && data.messages.length) {
        var lm = data.messages.slice(-1)[0];
        var last_message = lm.time+','+lm.action+','+lm.msg;
        if(this.last_message_sound != last_message) {
          var user = $.grep(data.users, function(v){return v.id==chatbox.userId});
          user = user.length ? user[0] : [{}];
          if(this.last_message_sound!==undefined) {
            var freq = (localStorage.cb_freq||default_freq);
            var when = (localStorage.cb_when||default_when);
            if(when != "never" && (when != "off" || localStorage.cb_blurred) && (when != "on" || !localStorage.cb_blurred) && (when != "once" || (localStorage.cb_blurred && !localStorage.cb_once))) {
              if(freq =="all" || (lm.userId!=chatbox.userId && user.username!=lm.username)) {
                if(when!="once" || !localStorage.cb_once) {
                  play_sound();
                  localStorage.cb_once = 1;
                }
              }
            }
          }
          this.last_message_sound = lm;
        }
      }
      overrided.call(this, data);
    };
});
abaixo o link do som que eu gostaria de por no meu chatbox
https://toque123.com/campainha-ding-dong/
desde já muito obrigado
legit-nyck
legit-nyck
****

Membro desde : 26/12/2013
Mensagens : 387
Pontos : 687

http://legitserverforum.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Alterar o som de notificação do chat box

Mensagem por Shek 17.01.23 17:08

Boa tarde.

É bom ensinar como incluir novos sons... Então, vou explicar como fazê-lo. Tecnicamente você tem uma variável de nome sounds do tipo array que contém os links dos áudios. Quando conseguir um áudio desejado, então você poderá incluir (exemplo do que citou). Esse array contém o nome do som e o valor dele. Para incluir, basta duplicar a primeira linha (por exemplo) e substituir os valores:
Código:
'future': 'https://illiweb.com/fa/fdf/future.mp3',
Logo, future poderá ser DingDong e a URL illiweb.com/fa/fdf/future.mp3 será substituído pelo URL do novo som. Então, ficará assim:
Código:
'DingDong':'https://toque123.com/wp-content/uploads/2020/10/Campainha-Ding-Dong.mp3',

O que define qual é o som padrão do chat então? A variável default_sound define qual é o som padrão. Então, basta trocar o nome que está entre as aspas dessa variável pelo nome do som que incluímos no array. Ou seja, o DingDong e pronto. Feliz A variável ficará:
Código:
var default_sound = sounds['DingDong'];
Resumindo... Tudo ficará bonitinho dessa forma:
Código:
    var sounds = {
      'future': 'https://illiweb.com/fa/fdf/future.mp3',
      'hal': 'https://illiweb.com/fa/fdf/hal.mp3',
      'secret': 'https://illiweb.com/fa/fdf/secret.mp3',
      'DingDong':'https://toque123.com/wp-content/uploads/2020/10/Campainha-Ding-Dong.mp3'
      };
    var default_sound = sounds['DingDong'];
    var default_freq = 'all';
    var default_when = 'always';
    var default_volume = 100;

Atenciosamente,
Shek King
Shek
Shek
Principal Contribuidor
Principal Contribuidor

Membro desde : 11/04/2009
Mensagens : 19006
Pontos : 22969

https://shiftactive.blogspot.com/ https://www.facebook.com/ShiftActif https://twitter.com/ShiftActif

Ir para o topo Ir para baixo

Tópico resolvido Re: Alterar o som de notificação do chat box

Mensagem por legit-nyck 17.01.23 22:09

Obrigado vou guardar esse tutorial caso um dia eu queira modificar o som do chat novamente obrigado Shek pode fechar o tópico 😃👏👏👏
legit-nyck
legit-nyck
****

Membro desde : 26/12/2013
Mensagens : 387
Pontos : 687

http://legitserverforum.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Alterar o som de notificação do chat box

Mensagem por tikky 18.01.23 2:20

Tópico resolvido


Movido para "Questões resolvidas".
tikky
tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7962
Pontos : 9217

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos