Sha256: be87c42aaba74e398dd3828e2f2e23c3cc6b87498f8c436593623d48f0f4a36d

Contents?: true

Size: 1.95 KB

Versions: 56

Compression:

Stored size: 1.95 KB

Contents

////////////////////
//Audio functions
////////////////////

PRESENCE.AUDIO = (function(P,$,undefined){
		
	//Audio variables
	var audio_path = '<%=image_path("chat")%>';
	var onMessageAudio;
	
	var html5_audiotypes=[
	  ["mp3","audio/mpeg"],
	  //["mp4","audio/mp4"],
	  //["ogg","audio/ogg"],
	  ["wav","audio/wav"]
	]
	
	
	var init = function(){
    //Init all audio files
    initSound("onMessageAudio");
  }
	
	
	var initSound = function(sound){
  
    //Check support for HTML5 audio
    var html5audio=document.createElement('audio')
  
    if (html5audio.canPlayType){ 
      path = audio_path + "/" + sound;
      window[sound] = new Audio();

	    for(i=0; i<html5_audiotypes.length; i++){
	      if (window[sound].canPlayType(html5_audiotypes[i][1])) {
	        var source= document.createElement('source');
	        source.type= html5_audiotypes[i][1];
	        source.src= path + '.' + html5_audiotypes[i][0];
	        window[sound].addEventListener('ended', endSoundListener);
	        window[sound].appendChild(source);
	      } 
	    }
    } else {
    //Browser doesn't support HTML5 audio
    }
  }


  function endSoundListener(){ }


	function playSound(sound){
	  if (window[sound]!=null){
	    window[sound].play();
	  } else {
	    //Fallback option: When browser doesn't support HTML5 audio
	    $('body').append('<embed src="' + audio_path + '/' + sound + '.mp3" autostart="true" hidden="true" loop="false">');
	  }
	}

	function initAndPlaySound(sound){
	    initSound(sound);
	    playSound(sound);
	}


	function mustPlaySoundForChatWindow(chatBox){
	  //Deny conditions
	  if(PRESENCE.XMPPClient.getUserStatus() == "dnd"){
	    return false;
	  }
	  
	  //Accept conditions
	  if (!PRESENCE.UTILITIES.getChatFocus()){
	    return true;
	  }
	  
	  //Default action
	  return false
	}
	
  return {
    init                        : init,
		mustPlaySoundForChatWindow  : mustPlaySoundForChatWindow,
    playSound                   : playSound
  };

}) (PRESENCE, jQuery);

Version data entries

56 entries across 56 versions & 2 rubygems

Version Path
social_stream-2.2.2 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-presence-2.2.1 app/assets/javascripts/presence_audio.js.erb
social_stream-2.2.1 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-2.2.0 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-presence-2.2.0 app/assets/javascripts/presence_audio.js.erb
social_stream-2.1.1 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-1.1.12 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-2.1.0 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-presence-2.1.0 app/assets/javascripts/presence_audio.js.erb
social_stream-2.0.4 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-presence-2.0.2 app/assets/javascripts/presence_audio.js.erb
social_stream-2.0.3 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-1.1.11 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-1.1.10 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-1.1.9 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-1.1.8 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-2.0.2 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-presence-2.0.1 app/assets/javascripts/presence_audio.js.erb
social_stream-2.0.1 presence/app/assets/javascripts/presence_audio.js.erb
social_stream-2.0.0 presence/app/assets/javascripts/presence_audio.js.erb