Html 使用AudioContext显示歌曲';s总波形
我试图显示一首歌的波形,就像SoundCloud在每首歌中所做的一样,但我遇到了一些困难 到目前为止,我认为这是一个正确的开始Html 使用AudioContext显示歌曲';s总波形,html,canvas,web-audio-api,audiocontext,janalyser,Html,Canvas,Web Audio Api,Audiocontext,Janalyser,我试图显示一首歌的波形,就像SoundCloud在每首歌中所做的一样,但我遇到了一些困难 到目前为止,我认为这是一个正确的开始 $scope.audioCtx = new (window.AudioContext || window.webkitAudioContext)(); $scope.analyser = $scope.audioCtx.createAnalyser(); $scope.myAudio = new Audio; $scope.myAudio.src =
$scope.audioCtx = new (window.AudioContext || window.webkitAudioContext)();
$scope.analyser = $scope.audioCtx.createAnalyser();
$scope.myAudio = new Audio;
$scope.myAudio.src = "http://localhost:9000/mp3/song.mp3";
// Create a MediaElementAudioSourceNode
// Feed the HTMLMediaElement into it
$scope.source = $scope.audioCtx.createMediaElementSource( $scope.myAudio );
$scope.source.connect( $scope.analyser );
$scope.analyser.fftSize = 64;
$scope.bufferLength = $scope.analyser.frequencyBinCount;
$scope.dataArray = new Uint8Array( $scope.bufferLength );
$scope.newDataArray = new Float32Array( $scope.analyser.fftSize );
$scope.analyser.getByteTimeDomainData( $scope.dataArray );
$scope.canvas = document.querySelector('.visualizer');
$scope.canvasCtx = $scope.canvas.getContext("2d");
function draw() {
$scope.WIDTH = $scope.canvas.width;
$scope.HEIGHT = $scope.canvas.height;
$scope.drawVisual = requestAnimationFrame( draw );
$scope.analyser.getByteTimeDomainData( $scope.dataArray );
$scope.canvasCtx.fillStyle = 'rgb(200, 200, 200)';
$scope.canvasCtx.fillRect(0, 0, $scope.WIDTH, $scope.HEIGHT);
$scope.canvasCtx.lineWidth = 2;
$scope.canvasCtx.strokeStyle = 'rgb(0, 0, 0)';
};
draw();
这显然只是部分,但最终的结果是显示整个轨迹,轨迹的波形从开始到结束都清晰地显示在画布的宽度上
非常感谢您在这方面的帮助
恭敬地
朱尔斯看看这个问题可能重复的答案。我想是很多次了。看看右边的“相关”问题。一个看起来几乎相同的是: