Запись звука на Chrome Windows, но не на Chrome AndroidHtml

Программисты Html
Ответить
Anonymous
 Запись звука на Chrome Windows, но не на Chrome Android

Сообщение Anonymous »

Я делал этот сайт в формате mp3 в WebM для проекта в Discord, и я могу записывать в Firefox на любом устройстве, но Chrome работает только в Windows.
Когда я записываю звук, он получает хранится локально и преобразуется в черный холст для встраивания в Discord, затем бот просто спрашивает, в порядке ли веб-сайт или нет, и если он принят, он переносится на другой канал.
Это должно быть файл для встраивания потому что боты на discord.js или py пока не могут манипулировать аудио

Код: Выделить всё

let mediaRecorder;
let audioChunks = [];
let audioBlob;
let canvas;
let canvasStream;
let audioStream;

function createCanvasWithNickname(name) {
canvas = document.createElement('canvas');
canvas.width = 400;
canvas.height = 144;
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'black';
ctx.fillRect(0, 0, 400, 144);
ctx.fillStyle = 'white';
ctx.font = '24px Arial';
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.fillText(name, 200, 72);

return canvas.captureStream(30);
}

// Funzione per inizializzare l'audio con un metodo alternativo
async function initializeAudio() {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
audioStream = stream;
}

document.getElementById('recordButton').addEventListener('click', async () => {
const name = document.getElementById('nameInput').value.trim();

canvasStream = createCanvasWithNickname(name);
await initializeAudio();
const combinedStream = new MediaStream([...canvasStream.getTracks(), ...audioStream.getTracks()]);
mediaRecorder = new MediaRecorder(combinedStream, { mimeType: 'video/webm' });
mediaRecorder.start();
mediaRecorder.ondataavailable = (event) => {
audioChunks.push(event.data);
};

mediaRecorder.onstop = () => {
audioBlob = new Blob(audioChunks, { type: 'video/webm' });
const audioUrl = URL.createObjectURL(audioBlob);
document.getElementById('audioPreview').src = audioUrl;

document.getElementById('recordButton').disabled = false;
document.getElementById('stopButton').disabled = true;
document.getElementById('sendButton').disabled = false;
};

document.getElementById('recordButton').disabled = true;
document.getElementById('stopButton').disabled = false;
});

document.getElementById('stopButton').addEventListener('click', () => {
mediaRecorder.stop();
});

document.getElementById('sendButton').addEventListener('click', async () => {
const name = document.getElementById('nameInput').value.trim();

if (!name) {
alert('Devi inserire un nickname!');
return;
}

const formData = new FormData();
formData.append('file', audioBlob, 'audio.webm');
formData.append('username', name);

try {
await fetch('webhookhere', {
method: 'POST',
body: formData
});
alert('Audio inviato a Discord con successo!');
} catch (error) {
console.error('Errore durante l\'invio del file:', error);
}
});
Я испробовал множество обходных решений и провел исследование, но нашел только людей с такой же проблемой и без ответов

Подробнее здесь: https://stackoverflow.com/questions/793 ... me-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»