Master_MTA Posted December 4, 2016 Share Posted December 4, 2016 السلام عليكم ورحمة الله وبركاته الحين شباب عندي عدة استفسارات بخصوص المايك ابدا باولها لانه مبني عليه كل شي هل يمكن تسجيل صوت اللاعب لما يتكلم بالمايك؟ Link to comment
Master_MTA Posted December 5, 2016 Author Share Posted December 5, 2016 هممممممم طيب كنت ابي اسوي لوحة تسجيل ببصمة الصوت لكن فشلتت التجربه +_+ 13 hours ago, [6ArH]#~Ecoo~ said: لا Link to comment
</Mr.Tn6eL> Posted December 5, 2016 Share Posted December 5, 2016 المايك ماتقدر تسجل صوته لكن... تقدر اذا كانت لك خبرة عالية نسبياً لانها تحتاج متصفحات وجافسكربت واتش ام ال بما ان ام تي ايه اضافت المتصفحات تقدر تسفيد منها مثلا اقرا الاقتباس هذا Quote The code shown below is copyrighted to Matt Diamond and available for use under MIT license. The original files are here: http://webaudiodemos.appspot.com/AudioRecorder/index.html http://webaudiodemos.appspot.com/AudioRecorder/js/recorderjs/recorderWorker.js Save this files and use (function(window){ var WORKER_PATH = 'recorderWorker.js'; var Recorder = function(source, cfg){ var config = cfg || {}; var bufferLen = config.bufferLen || 4096; this.context = source.context; this.node = this.context.createJavaScriptNode(bufferLen, 2, 2); var worker = new Worker(config.workerPath || WORKER_PATH); worker.postMessage({ command: 'init', config: { sampleRate: this.context.sampleRate } }); var recording = false, currCallback; this.node.onaudioprocess = function(e){ if (!recording) return; worker.postMessage({ command: 'record', buffer: [ e.inputBuffer.getChannelData(0), e.inputBuffer.getChannelData(1) ] }); } this.configure = function(cfg){ for (var prop in cfg){ if (cfg.hasOwnProperty(prop)){ config[prop] = cfg[prop]; } } } this.record = function(){ recording = true; } this.stop = function(){ recording = false; } this.clear = function(){ worker.postMessage({ command: 'clear' }); } this.getBuffer = function(cb) { currCallback = cb || config.callback; worker.postMessage({ command: 'getBuffer' }) } this.exportWAV = function(cb, type){ currCallback = cb || config.callback; type = type || config.type || 'audio/wav'; if (!currCallback) throw new Error('Callback not set'); worker.postMessage({ command: 'exportWAV', type: type }); } worker.onmessage = function(e){ var blob = e.data; currCallback(blob); } source.connect(this.node); this.node.connect(this.context.destination); //this should not be necessary }; Recorder.forceDownload = function(blob, filename){ var url = (window.URL || window.webkitURL).createObjectURL(blob); var link = window.document.createElement('a'); link.href = url; link.download = filename || 'output.wav'; var click = document.createEvent("Event"); click.initEvent("click", true, true); link.dispatchEvent(click); } window.Recorder = Recorder; })(window); //ADDITIONAL JS recorderWorker.js var recLength = 0, recBuffersL = [], recBuffersR = [], sampleRate; this.onmessage = function(e){ switch(e.data.command){ case 'init': init(e.data.config); break; case 'record': record(e.data.buffer); break; case 'exportWAV': exportWAV(e.data.type); break; case 'getBuffer': getBuffer(); break; case 'clear': clear(); break; } }; function init(config){ sampleRate = config.sampleRate; } function record(inputBuffer){ recBuffersL.push(inputBuffer[0]); recBuffersR.push(inputBuffer[1]); recLength += inputBuffer[0].length; } function exportWAV(type){ var bufferL = mergeBuffers(recBuffersL, recLength); var bufferR = mergeBuffers(recBuffersR, recLength); var interleaved = interleave(bufferL, bufferR); var dataview = encodeWAV(interleaved); var audioBlob = new Blob([dataview], { type: type }); this.postMessage(audioBlob); } function getBuffer() { var buffers = []; buffers.push( mergeBuffers(recBuffersL, recLength) ); buffers.push( mergeBuffers(recBuffersR, recLength) ); this.postMessage(buffers); } function clear(){ recLength = 0; recBuffersL = []; recBuffersR = []; } function mergeBuffers(recBuffers, recLength){ var result = new Float32Array(recLength); var offset = 0; for (var i = 0; i < recBuffers.length; i++){ result.set(recBuffers[i], offset); offset += recBuffers[i].length; } return result; } function interleave(inputL, inputR){ var length = inputL.length + inputR.length; var result = new Float32Array(length); var index = 0, inputIndex = 0; while (index < length){ result[index++] = inputL[inputIndex]; result[index++] = inputR[inputIndex]; inputIndex++; } return result; } function floatTo16BitPCM(output, offset, input){ for (var i = 0; i < input.length; i++, offset+=2){ var s = Math.max(-1, Math.min(1, input[i])); output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true); } } function writeString(view, offset, string){ for (var i = 0; i < string.length; i++){ view.setUint8(offset + i, string.charCodeAt(i)); } } function encodeWAV(samples){ var buffer = new ArrayBuffer(44 + samples.length * 2); var view = new DataView(buffer); /* RIFF identifier */ writeString(view, 0, 'RIFF'); /* file length */ view.setUint32(4, 32 + samples.length * 2, true); /* RIFF type */ writeString(view, 8, 'WAVE'); /* format chunk identifier */ writeString(view, 12, 'fmt '); /* format chunk length */ view.setUint32(16, 16, true); /* sample format (raw) */ view.setUint16(20, 1, true); /* channel count */ view.setUint16(22, 2, true); /* sample rate */ view.setUint32(24, sampleRate, true); /* byte rate (sample rate * block align) */ view.setUint32(28, sampleRate * 4, true); /* block align (channel count * bytes per sample) */ view.setUint16(32, 4, true); /* bits per sample */ view.setUint16(34, 16, true); /* data chunk identifier */ writeString(view, 36, 'data'); /* data chunk length */ view.setUint32(40, samples.length * 2, true); floatTo16BitPCM(view, 44, samples); return view; } <html> <body> <audio controls autoplay></audio> <script type="text/javascript" src="recorder.js"> </script> <fieldset><legend>RECORD AUDIO</legend> <input onclick="startRecording()" type="button" value="start recording" /> <input onclick="stopRecording()" type="button" value="stop recording and play" /> </fieldset> <script> var onFail = function(e) { console.log('Rejected!', e); }; var onSuccess = function(s) { var context = new webkitAudioContext(); var mediaStreamSource = context.createMediaStreamSource(s); recorder = new Recorder(mediaStreamSource); recorder.record(); // audio loopback // mediaStreamSource.connect(context.destination); } window.URL = window.URL || window.webkitURL; navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; var recorder; var audio = document.querySelector('audio'); function startRecording() { if (navigator.getUserMedia) { navigator.getUserMedia({audio: true}, onSuccess, onFail); } else { console.log('navigator.getUserMedia not present'); } } function stopRecording( طبعا تقدر تسفيد من امكانيات المكتبة وتسجل الصوت الطريقة انك تسوي متصفح وتحط فيه صفحة تسجيل الصوت( اذا كان متصفح اللعبة نفسه يدعم تسجيل الصوت ) وبعدين تحفظه لكن الحفظ مو امن نسبيا تقدر تشفره وتحفظه وتفك تشفيره وهذي الية العمل اعرف انك راح تقول صعبة وماتقدر تسوي 2 Link to comment
Master_MTA Posted December 5, 2016 Author Share Posted December 5, 2016 (edited) 2 hours ago, said: المايك ماتقدر تسجل صوته لكن... تقدر اذا كانت لك خبرة عالية نسبياً لانها تحتاج متصفحات وجافسكربت واتش ام ال بما ان ام تي ايه اضافت المتصفحات تقدر تسفيد منها مثلا اقرا الاقتباس هذا طبعا تقدر تسفيد من امكانيات المكتبة وتسجل الصوت الطريقة انك تسوي متصفح وتحط فيه صفحة تسجيل الصوت( اذا كان متصفح اللعبة نفسه يدعم تسجيل الصوت ) وبعدين تحفظه لكن الحفظ مو امن نسبيا تقدر تشفره وتحفظه وتفك تشفيره وهذي الية العمل اعرف انك راح تقول صعبة وماتقدر تسوي لا بالعكس مافي شي يجيك بالساهل حتى لو صعبه بسعى وراها اما بالنسبه ل html عندي خبره ليست سيئه فيها يعني اعرف وش الاتربيوت واعرف اتصل بالmysql وهكذا لكن اول مره اعرف ان mta ترتبط مع html يعطيك العافيه بسوي عدة محاولات باذن الله لو ما عرفت شي او وقف بوجهي بسالكم وما تقصرون+_+ @</Mr.Tn6eL> الياس من اول محاوله مهو الخيار الصحيح لكن كل فشل بدايه لنجاح لكن نبدا نفهم حبه حبه معليش اول شي ابي طريقة التسجيل كيف اسوي صفحه على موقع لتسجيل الصوت؟ Edited December 5, 2016 by Master_MTA Link to comment
</Mr.Tn6eL> Posted December 6, 2016 Share Posted December 6, 2016 خاطئ html حبيت انبهك ان مفهومك عن Link to comment
Master_MTA Posted December 6, 2016 Author Share Posted December 6, 2016 (edited) 58 minutes ago, said: خاطئ html حبيت انبهك ان مفهومك عن ممكن تعطيني فكره عن المفهوم الصحيح؟ اللي اعرفه انها لغة لبناء هيكل الموقع Edited December 6, 2016 by Master_MTA Link to comment
</Mr.Tn6eL> Posted December 6, 2016 Share Posted December 6, 2016 1 hour ago, Master_MTA said: ممكن تعطيني فكره عن المفهوم الصحيح؟ اللي اعرفه انها لغة لبناء هيكل الموقع صحيح لكن ماله شغل في قواعد البيانات والسيرفر سايد Link to comment
Master_MTA Posted December 6, 2016 Author Share Posted December 6, 2016 Just now, </Mr.Tn6eL> said: صحيح لكن ماله شغل في قواعد البيانات والسيرفر سايد اها يب اسف لغبطت بالنسبه لقواعد البيانات اما بالنسبه للسيرفر سايد كيف ماله شغل وتقلي جب من الصفحه؟ Link to comment
</Mr.Tn6eL> Posted December 6, 2016 Share Posted December 6, 2016 اقصد ان الصفحة ماله شغل في الخادم اللي عليه الصفحة Link to comment
Master_MTA Posted December 6, 2016 Author Share Posted December 6, 2016 4 minutes ago, </Mr.Tn6eL> said: اقصد ان الصفحة ماله شغل في الخادم اللي عليه الصفحة طيب ممكن تعطيني مثال مبسط شوي لان اللي فوق صعب علي Link to comment
</Mr.Tn6eL> Posted December 6, 2016 Share Posted December 6, 2016 صعب عليك؟ ليش تسويه؟ لاني لو عطيك مثال اخذته ولصقته Link to comment
Abu-Solo Posted December 6, 2016 Share Posted December 6, 2016 (edited) 3 minutes ago, said: صعب عليك؟ ليش تسويه؟ لاني لو عطيك مثال اخذته ولصقته اذا هو صعب عليه, ليه ما تساعدة وتخليه سهل عليه؟ انا لو اقدر اساعده بساعدة Edited December 6, 2016 by Abu-Solo Link to comment
</Mr.Tn6eL> Posted December 6, 2016 Share Posted December 6, 2016 8 minutes ago, Abu-Solo said: اذا هو صعب عليه, ليه ما تساعدة وتخليه سهل عليه؟ انا لو اقدر اساعده بساعدة يبغى مثال على تسجيل الصوت كذا سوى 75% من الكود وثانياً انا مني متأكد من الطريقة 100% عطيه اقتراح فقط Link to comment
Master_MTA Posted December 6, 2016 Author Share Posted December 6, 2016 31 minutes ago, </Mr.Tn6eL> said: يبغى مثال على تسجيل الصوت كذا سوى 75% من الكود وثانياً انا مني متأكد من الطريقة 100% عطيه اقتراح فقط يا غالي انت فهمت غلط انا فقط ابي مثال لاي شي يعني اجلب ملف من موقع او اي شي مو شرط صوت كيف 46 minutes ago, </Mr.Tn6eL> said: صعب عليك؟ ليش تسويه؟ لاني لو عطيك مثال اخذته ولصقته خلاص اخوي حاول تفهمني وحده وحده ؟ اكيد بحاول لاني ما بوقف على شي واحد خلاص اخوي جاتني فكره روعه +_= بحاول اطبقها اذا ما اقدر اخليك تساعدني معليش بتعبك كذا الاتش تي ام ال صحيح؟ <!doctype html> <html> <head> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Audio Recorder</title> <script src="js/audiodisplay.js"></script> <script src="js/recorderjs/recorder.js"></script> <script src="js/main.js"></script> <style> html { overflow: hidden; } body { font: 14pt Arial, sans-serif; background: lightgrey; display: flex; flex-direction: column; height: 100vh; width: 100%; margin: 0 0; } canvas { display: inline-block; background: #202020; width: 95%; height: 45%; box-shadow: 0px 0px 10px blue; } #controls { display: flex; flex-direction: row; align-items: center; justify-content: space-around; height: 20%; width: 100%; } #record { height: 15vh; } #record.recording { background: red; background: -webkit-radial-gradient(center, ellipse cover, #ff0000 0%,lightgrey 75%,lightgrey 100%,#7db9e8 100%); background: -moz-radial-gradient(center, ellipse cover, #ff0000 0%,lightgrey 75%,lightgrey 100%,#7db9e8 100%); background: radial-gradient(center, ellipse cover, #ff0000 0%,lightgrey 75%,lightgrey 100%,#7db9e8 100%); } #save, #save img { height: 10vh; } #save { opacity: 0.25;} #save[download] { opacity: 1;} #viz { height: 80%; width: 100%; display: flex; flex-direction: column; justify-content: space-around; align-items: center; } @media (orientation: landscape) { body { flex-direction: row;} #controls { flex-direction: column; height: 100%; width: 10%;} #viz { height: 100%; width: 90%;} } </style> </head> <body> <div id="viz"> <canvas id="analyser" width="1024" height="500"></canvas> <canvas id="wavedisplay" width="1024" height="500"></canvas> </div> <div id="controls"> <img id="record" src="img/mic128.png" onclick="toggleRecording(this);"> <a id="save" href="#"><img src="img/save.svg"></a> </div> </body> </html> +فهمت جزء من كلامك وهو ان هذي الشركه لها رخصه وهي متاحه لmta لكن المشكلة الان في الحفظ كيف احفظ؟ Link to comment
</Mr.Tn6eL> Posted December 6, 2016 Share Posted December 6, 2016 (edited) السكربتات موجودة <script src="js/audiodisplay.js"></script> <script src="js/recorderjs/recorder.js"></script> <script src="js/main.js"></script> Edited December 6, 2016 by </Mr.Tn6eL> Link to comment
Master_MTA Posted December 7, 2016 Author Share Posted December 7, 2016 15 hours ago, </Mr.Tn6eL> said: السكربتات موجودة <script src="js/audiodisplay.js"></script> <script src="js/recorderjs/recorder.js"></script> <script src="js/main.js"></script> يب بحاول اسويها او اجيبها من الانترنت باذن الله لكن المشكله بالحفظ الان؟ Link to comment
Abu-Solo Posted December 7, 2016 Share Posted December 7, 2016 3 minutes ago, Master_MTA said: يب بحاول اسويها او اجيبها من الانترنت باذن الله لكن المشكله بالحفظ الان؟ تقدر تستخدم mySQL ? Link to comment
Master_MTA Posted December 7, 2016 Author Share Posted December 7, 2016 Just now, Abu-Solo said: تقدر تستخدم mySQL ? لا اللي اعرفه mysql فقط لتخزين البيانات ما اقدر اخزن صوت عليها او ملف 1 Link to comment
</Mr.Tn6eL> Posted December 7, 2016 Share Posted December 7, 2016 (edited) mysql مايحتاج تقدر تحفظها بملف عادي للحماية md5 استخدم طبعا بما انك مسوي بصمة صوت للوحة التسجيل تقدر تجيب الصوت وتحقق ان الملفات المحفوظة لها نفس البصمة او لا Edited December 7, 2016 by </Mr.Tn6eL> Link to comment
Master_MTA Posted December 7, 2016 Author Share Posted December 7, 2016 20 minutes ago, </Mr.Tn6eL> said: mysql مايحتاج تقدر تحفظها بملف عادي للحماية md5 استخدم طبعا بما انك مسوي بصمة صوت للوحة التسجيل تقدر تجيب الصوت وتحقق ان الملفات المحفوظة لها نفس البصمة او لا اسف معليش ما فهمت منك اي شي اعذرني صراحه لكن وش هو md5 Link to comment
</Mr.Tn6eL> Posted December 7, 2016 Share Posted December 7, 2016 دالة لتشفير البيانات Link to comment
Master_MTA Posted December 7, 2016 Author Share Posted December 7, 2016 3 hours ago, </Mr.Tn6eL> said: دالة لتشفير البيانات هممم هل يمديك تعطيني مثال على التشفير Link to comment
Master_MTA Posted December 8, 2016 Author Share Posted December 8, 2016 هذا بالاتش تي ام ال ولا بام تي ايه اسف والله ادري تعبتك Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now