Untitled
unknown
plain_text
10 months ago
3.1 kB
7
Indexable
<div class="d-inline-block">
<button type="button" id="startRecording" class="btn btn-post btn-tooltip-form e-none text-primary rounded-pill" data-toggle="tooltip" data-placement="top" title="Začít nahrávat">
<i class="bi-mic f-size-20 align-bottom" id="iconMic"></i>
</button>
<audio id="audioPreview" class="d-none mt-2" controls></audio>
<input type="hidden" name="audioFile" id="audioFile">
</div>
<script>
let mediaRecorder;
let audioChunks = [];
const startButton = document.getElementById("startRecording");
const iconMic = document.getElementById("iconMic");
startButton.addEventListener("click", async () => {
if (mediaRecorder && mediaRecorder.state === "recording") {
// Zastavení nahrávání
mediaRecorder.stop();
iconMic.classList.replace("bi-stop-circle", "bi-mic");
startButton.setAttribute("data-original-title", "Začít nahrávat");
} else {
// Zahájení nahrávání
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
mediaRecorder = new MediaRecorder(stream);
mediaRecorder.ondataavailable = (event) => {
audioChunks.push(event.data);
};
mediaRecorder.onstop = async () => {
const audioBlob = new Blob(audioChunks, { type: "audio/mp3" });
const audioFile = new File([audioBlob], `nahravka_${Date.now()}.mp3`, { type: "audio/mp3" });
const fileUploaderInstance = $.fileuploader.getInstance($('input[name="photo[]"]').get(0));
if (fileUploaderInstance) {
// Generování URL pro stahování souboru
const fileURL = URL.createObjectURL(audioBlob);
// Vytvoření mock souboru se správnými atributy
const mockFile = {
name: audioFile.name,
size: audioFile.size,
type: audioFile.type,
file: audioFile,
data: {
url: fileURL, // Nastavení URL pro stahování
},
append: true, // Přidání souboru do seznamu
};
fileUploaderInstance.append(mockFile);
// Aktualizace stavu
setTimeout(() => {
const addedFile = fileUploaderInstance.getFileList().find(file => file.name === audioFile.name);
if (addedFile) {
addedFile.upload.status = 'successful';
addedFile.html.addClass('upload-successful'); // Přidání stavu úspěšného nahrání
addedFile.html.find('.fileuploader-progressbar').hide(); // Skrytí progress baru
// Oprava atributu `href` pro stahování
addedFile.html.find('.fileuploader-action-download').attr('href', fileURL);
console.log(`Nahrávka ${audioFile.name} byla označena jako úspěšně nahraná.`);
} else {
console.error("Soubor nebyl nalezen v seznamu souborů.");
}
}, 100);
} else {
console.error("Instance FileUploaderu nebyla nalezena.");
}
// Vyčištění
audioChunks = [];
};
mediaRecorder.start();
iconMic.classList.replace("bi-mic", "bi-stop-circle");
startButton.setAttribute("data-original-title", "Zastavit nahrávání");
}
});
</script>Editor is loading...
Leave a Comment