我知道它可以与mediaSource一起使用,但媒体源不支持所有视频格式(例如,片段化的mp4)。这是一个问题,因为我的应用程序没有可以修复该文件的服务器。它只是一个客户端应用程序。
#include<iostream>
using namespace std;
int x = 30;
x = 40;
int main() {
cout << x;
system("pause");
return 0;
};
这是我现在正在使用的代码,它基本上等待整个文件并将其放入单个数组中,然后放入blob中,然后放入URL.createObjectURL
答案 0 :(得分:2)
您可以在其中重构代码:
await ipfs.startBlobStreaming(hash);
this.setState({...this.state, videoComplete: true});
const startBlobStreaming = async (hash) => {
return new Promise(async (resolve) => {
let entireBuffer;
const s = await stream(hash);
s.on('data', buffer => {
if (!entireBuffer) {
entireBuffer = buffer;
} else {
entireBuffer = concatTypedArrays(entireBuffer, buffer);
}
const arrayBuffer = typedArrayToArrayBuffer(entireBuffer);
const blob = new Blob(arrayBuffer);
const url = URL.createObjectURL(blob);
this.setState({...this.state, videoSrc: url});
});
s.on('end', _ => resolve())
});
}
我不知道缓冲区进入s.on
的强度,但是您还可以在一定时间内(例如1000ms)收集一定数量的缓冲区,然后创建Blob网址。