আমি ব্যবহারকারীদের ওয়েবক্যাম এবং অডিও রেকর্ড করতে এবং এটি সার্ভারের কোনও ফাইলে সংরক্ষণ করতে চাই। এই ফাইলগুলি তখন অন্য ব্যবহারকারীদের কাছে পরিবেশন করতে সক্ষম হবে।
প্লেব্যাক নিয়ে আমার কোনও সমস্যা নেই, তবে লিখিত সামগ্রীটি রেকর্ড করতে আমার সমস্যা হচ্ছে।
আমার বোধগম্য যে getUserMedia .record()
ফাংশনটি এখনও লেখা হয়নি - এটির জন্য এখন পর্যন্ত কেবল একটি প্রস্তাব দেওয়া হয়েছে।
আমি আমার সার্ভারে পিয়ার কানেকশনএপিআই ব্যবহার করে পিয়ার সংযোগ তৈরি করতে চাই। আমি বুঝতে পারি এটি কিছুটা হ্যাকি, তবে আমি ভাবছি সার্ভারে পিয়ার তৈরি করা এবং ক্লায়েন্ট-পিয়ার কী প্রেরণ করে তা রেকর্ড করা সম্ভব হওয়া উচিত।
যদি এটি সম্ভব হয় তবে আমার তখন এই তথ্যটি ফ্ল্যাভ বা অন্য কোনও ভিডিও ফর্ম্যাটে সংরক্ষণ করতে সক্ষম হওয়া উচিত।
আমার পছন্দটি হ'ল ওয়েবক্যাম + অডিও ক্লায়েন্ট-সাইডটি রেকর্ড করা, ক্লায়েন্টকে ভিডিও আপলোড করার আগে তাদের প্রথম প্রচেষ্টা পছন্দ না হলে পুনরায় রেকর্ড করার অনুমতি দেওয়া। এটি নেটওয়ার্ক সংযোগগুলিতে বাধা দেওয়ারও অনুমতি দেয়। আমি এমন কিছু কোড দেখেছি যা ওয়েবক্যাম থেকে ক্যানভাসে ডেটা প্রেরণ করে স্বতন্ত্র 'চিত্রগুলি' রেকর্ডিংয়ের অনুমতি দেয় - এটি দুর্দান্ত তবে আমার অডিওও দরকার need
আমার এখন পর্যন্ত ক্লায়েন্টের সাইড কোডটি এখানে রয়েছে:
<video autoplay></video>
<script language="javascript" type="text/javascript">
function onVideoFail(e) {
console.log('webcam fail!', e);
};
function hasGetUserMedia() {
// Note: Opera is unprefixed.
return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
if (hasGetUserMedia()) {
// Good to go!
} else {
alert('getUserMedia() is not supported in your browser');
}
window.URL = window.URL || window.webkitURL;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia;
var video = document.querySelector('video');
var streamRecorder;
var webcamstream;
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true, video: true}, function(stream) {
video.src = window.URL.createObjectURL(stream);
webcamstream = stream;
// streamrecorder = webcamstream.record();
}, onVideoFail);
} else {
alert ('failed');
}
function startRecording() {
streamRecorder = webcamstream.record();
setTimeout(stopRecording, 10000);
}
function stopRecording() {
streamRecorder.getRecordedData(postVideoToServer);
}
function postVideoToServer(videoblob) {
/* var x = new XMLHttpRequest();
x.open('POST', 'uploadMessage');
x.send(videoblob);
*/
var data = {};
data.video = videoblob;
data.metadata = 'test metadata';
data.action = "upload_video";
jQuery.post("http://www.foundthru.co.uk/uploadvideo.php", data, onUploadSuccess);
}
function onUploadSuccess() {
alert ('video uploaded');
}
</script>
<div id="webcamcontrols">
<a class="recordbutton" href="javascript:startRecording();">RECORD</a>
</div>