VueJS 应用程序中的 WavesurferJS,可以播放音频但波形永远不会在 IOS Safari 上加载?
WavesurferJS in a VueJS app, audio can be played but waveform never loads on IOS Safari?
我在我的 VueJS 应用程序中使用 WavesurferJS,过去一周我一直在努力解决这个问题。在 IOS Safari(据我所知,仅限 IOS Safari),我的 wavesurfer 组件无法完成解码 audio/loading 波形,一条细直线刚刚出现.如果不使用 backend: "MediaElement"
,组件只会显示为空白。然而,使用后端,我可以播放音频,但波形仍然无法加载。
我稍微阅读了 wavesurfer 文档并根据 常见问题解答:"if you use the backend: 'MediaElement' option... The audio will start playing as you press play. A thin line will be displayed until the whole audio file is downloaded and decoded to draw the waveform."。 这正是我遇到的情况,可以播放音频并且出现细线,但我认为波形永远不会结束 downloading/decoding。
我处理音频加载的 Vue 方法:
setupRecentRecordingandSave(data, num, name) {
var url = window.URL.createObjectURL(data);
if (this.wavesurfer[num] == null) {
this.createWaveSurfer(num);
this.wavesurfer[num].load(url);
this.showRecent = true;
} else {
this.wavesurfer[num].load(url);
}
this.$store.commit("addCough", { key: name, val: data});
}
我正在使用一个 wavesurfer 元素数组,在用户进行录制后调用此方法,并将 blob 数据发送到此方法。
我的创建 wavesurfer 代码:
createWaveSurfer(num) {
Vue.set(
this.wavesurfer,
num,
WaveSurfer.create({
container: "#waveform-" + num,
waveColor: "#f7931e",
progressColor: "#824500",
fillParent: true,
hideScrollbar: true,
backend: "MediaElement"
})
);
},
我已经为此苦苦挣扎了一段时间,感谢您的帮助。谢谢
原来我的问题不在于 WaveSurfer,而在于我在 IOS 上录制用户音频的方式。修复并确保录音正确后,波形正确显示。
我在我的 VueJS 应用程序中使用 WavesurferJS,过去一周我一直在努力解决这个问题。在 IOS Safari(据我所知,仅限 IOS Safari),我的 wavesurfer 组件无法完成解码 audio/loading 波形,一条细直线刚刚出现.如果不使用 backend: "MediaElement"
,组件只会显示为空白。然而,使用后端,我可以播放音频,但波形仍然无法加载。
我稍微阅读了 wavesurfer 文档并根据 常见问题解答:"if you use the backend: 'MediaElement' option... The audio will start playing as you press play. A thin line will be displayed until the whole audio file is downloaded and decoded to draw the waveform."。 这正是我遇到的情况,可以播放音频并且出现细线,但我认为波形永远不会结束 downloading/decoding。
我处理音频加载的 Vue 方法:
setupRecentRecordingandSave(data, num, name) {
var url = window.URL.createObjectURL(data);
if (this.wavesurfer[num] == null) {
this.createWaveSurfer(num);
this.wavesurfer[num].load(url);
this.showRecent = true;
} else {
this.wavesurfer[num].load(url);
}
this.$store.commit("addCough", { key: name, val: data});
}
我正在使用一个 wavesurfer 元素数组,在用户进行录制后调用此方法,并将 blob 数据发送到此方法。
我的创建 wavesurfer 代码:
createWaveSurfer(num) {
Vue.set(
this.wavesurfer,
num,
WaveSurfer.create({
container: "#waveform-" + num,
waveColor: "#f7931e",
progressColor: "#824500",
fillParent: true,
hideScrollbar: true,
backend: "MediaElement"
})
);
},
我已经为此苦苦挣扎了一段时间,感谢您的帮助。谢谢
原来我的问题不在于 WaveSurfer,而在于我在 IOS 上录制用户音频的方式。修复并确保录音正确后,波形正确显示。