TRIM BASIS64 AUDIO -STRING mit AudiocontextJavaScript

Javascript-Forum
Anonymous
 TRIM BASIS64 AUDIO -STRING mit Audiocontext

Post by Anonymous »

Ich suche nach einer Möglichkeit, eine Basis64 -Audio -String < /code> basierend auf Start- und Endpositionen (MS) zu schneiden. . AudioBuffer , schneidet es ab und erstellen Sie einen neuen AudioBuffer .
, in dem ich auf ein Problem stoße, wenn ich den audioBuffertObase64 (...) Funktion aufrufe. /> Code Pen
Finden Sie den Code, den ich bisher habe. /> unten finden Sie nur die wichtigen Teile für dieses Problem. Audio -Zeichenfolge in einen AudioBuffer :

Code: Select all

const base64ToAudioBuffer = async (
base64Audio
) => {
let binary = window.atob(base64Audio);
let audioBuffer = new ArrayBuffer(binary.length);
let bytes = new Uint8Array(audioBuffer);

for (let i = 0; i < audioBuffer.byteLength; i++)
{
bytes[i] = binary.charCodeAt(i) & 0xFF;
}

return await (new window.AudioContext()).decodeAudioData(
audioBuffer
);
};
audioBuffertobase64
Diese Funktion soll den angegebenen AudioBuffer in eine Basis64 -Audio -Zeichenfolge umwandeln.

Code: Select all

const audioBufferToBase64 = (
audioBuffer
) => {
let bytes = new Uint8Array(audioBuffer);
let len = audioBuffer.byteLength;
let binary = "";

for (let i = 0; i < len; i++)
{
binary += String.fromCharCode(bytes[i]);
}

return window.btoa(binary);
};
trimaudioBuffer
Diese Funktion akzeptiert den AudioBuffer und den Start und enden in MS zurück und gibt einen neuen AudioBuffer zurück.

Code: Select all

const trimAudioBuffer = (
audioBuffer,
startTimeMs,
endTimeMs
) => {
const audioContext = new window.AudioContext();

const sampleRate = audioBuffer.sampleRate || 48000;
const startFrame = (startTimeMs * sampleRate) / 1000;
const endFrame = (endTimeMs * sampleRate) / 1000;
let channelCount = audioBuffer.numberOfChannels || 0;

if (channelCount

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post