%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/jalalj2hb/public_html/ftm-admin/
Upload File :
Create Path :
Current File : /home/jalalj2hb/public_html/ftm-admin/app.js

$(document).ready(function() {
	//webkitURL is deprecated but nevertheless
URL = window.URL || window.webkitURL;

var gumStream; 						//stream from getUserMedia()
var rec; 							//Recorder.js object
var input; 							//MediaStreamAudioSourceNode we'll be recording
var blob_1;
// shim for AudioContext when it's not avb. 
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext //audio context to help us record


var counterfun ="";

    $("#recordStart").click(function () {

    	$("#audiorecorder").css("border","3px solid red");

		// $("#recordStart").attr("disabled",true);
    	
    	$("#recordStop").attr("disabled",false);
    	$("#recordStop").removeClass("btn-secondary");
    	$("#recordStop").addClass("btn-danger");

    	$("#sendAudio").attr("disabled",true);
    	$("#sendAudio").addClass("btn-secondary");
    	$("#sendAudio").removeClass("btn-info");

    	$("#recordStart").attr("disabled",true);
    	$("#recordStart").addClass("btn-secondary");
    	$("#recordStart").removeClass("btn-success btn-warning");

    	


    	$("#audioplayer").hide(500);

    	var  i = 0 ; 
    	var  y = 0 ; 
function timeer() {

    	if (i>=60) {
    		y=y+1;
    		i=0;
    	}else{
    		i=i+1;
    	}

    	if (y<10) {
    		Y = "0"+y;
    	}else{
    		Y=y;
    	}
    	if (i<10) {
    		I = "0"+i;
    	}else{
    		I=i;
    	}
    	$("#time").html(Y+":"+I);

}

clearInterval(counterfun);
counterfun =  setInterval(timeer,1000);

    	
    	var constraints = {audio: { noiseSuppression: true }, audio: true, video:false }

    	navigator.mediaDevices.getUserMedia(constraints).then(function(stream) {

		/*
			create an audio context after getUserMedia is called
			sampleRate might change after getUserMedia is called, like it does on macOS when recording through AirPods
			the sampleRate defaults to the one set in your OS for your playback device

		*/
		audioContext = new AudioContext();

		//update the format 
		console.log(audioContext.sampleRat);

		/*  assign to gumStream for later use  */
		gumStream = stream;
		
		/* use the stream */
		input = audioContext.createMediaStreamSource(stream);

		/* 
			Create the Recorder object and configure to record mono sound (1 channel)
			Recording 2 channels  will double the file size
		*/
		rec = new Recorder(input,{numChannels:1})

		rec.stop();
		//start the recording process
		rec.record()


	}).catch(function(err) {
	  	//enable the record button if getUserMedia() fails
    	$("#recordStart").attr("disabled",false);
    	// $("#recordStop").attr("disabled",true).addClass("btn-secondary");
    	$("#recordStop").attr("disabled",true).addClass("btn-secondary");
	});
    });




    $("#recordStop").click(function () {
		clearInterval(counterfun);
		$("#recordStart").removeClass("btn-success");
    	$("#recordStart").addClass("btn-warning");
    	$("#recordStart").html("<i class=\"fa fa-undo\" aria-hidden=\"true\"></i> تسجيل جديد");



 

    	$("#audiorecorder").css("border","3px solid green");

    	$("#recordStop").removeClass("btn-danger").addClass("btn-secondary");
    	$("#recordStop").attr("disabled",true);


    	$("#recordStart").attr("disabled",false);

    	$("#sendAudio").attr("disabled",false);
    	$("#sendAudio").addClass("btn-info");
    	$("#sendAudio").removeClass("btn-secondary");



    	$("#audioloader").toggle(500);
    	rec.stop();

	//stop microphone access
	gumStream.getAudioTracks()[0].stop();

	$("#sendAudio").unbind("click");

	
	//create the wav blob and pass it on to createDownloadLink
	rec.exportWAV(createDownloadLink);

	rec = new Recorder(input,{numChannels:1})

	$("#sendAudio").attr("disabled",false);
	$("#recordStart").attr("disabled",false);





    })


    function createDownloadLink(blob) {


  
	
	var url = URL.createObjectURL(blob);
	

	$("#audioplayer").attr('src',url);
	$("#audioplayer").show(500);

		$("#sendAudio").click(function(){
			alert("جاري الارسال");

    	console.log(blob);
		var xhr=new XMLHttpRequest();
		  xhr.onload=function(e) {
		      if(this.readyState === 4) {
		          console.log("Server returned: ",e.target.responseText);
		      }
		  };

          id_user = $("#id_user_hidden").val();
          ecole_id = $("#ecole_id_hidden").val();

		  var fd=new FormData();
          fd.append("audio_data",blob);
          fd.append("type","newMessageAudio");
          fd.append("id_user",id_user);
		  fd.append("ecole_id",ecole_id);
		  xhr.open("POST","chat.php",true);
		  xhr.send(fd);
		
		$("#sendAudio").attr("disabled",true);
    	$("#sendAudio").addClass("btn-secondary");
    	$("#sendAudio").removeClass("btn-info");
		  

		$("#recordStart").attr("disabled",false);
    	$("#recordStart").removeClass("btn-warning");
    	$("#recordStart").addClass("btn-success");
    	$("#recordStart").html("<i class=\"fa fa-undo\" aria-hidden=\"true\"></i>  تسجيل جديد");


    	$('<li class="sent"><img height="22" width="22" src="assets/img/logo%20ecpp.png" alt="" /><p><audio style="margin-top:15px; height: 40px ; width: 600px;" src="'+url+'"  type="audio/wav" controls>هدا المنصفح لا يدعم العربية</p></li>').appendTo($('.messages ul'));

		$(".messages").animate({ scrollTop: 560000 }, "slow");
        $(".close").click();

		$("#sendAudio").unbind("click");
        alert("تم الارسال");

    	});


    }

})

Zerion Mini Shell 1.0