我正在尝试编写一个新的简单扩展,它显示mp4视频播放器使用<video>。Vscode似乎支持视频播放,因为我可以完美地观看YouTube视频。
但是我不能让我自己的mp4工作。它根本不播放。
我怀疑这与跨来源的请求有关。但是我不知道如何在vscode html预览中调试网络请求。或者这完全不同。
extension.ts中的代码非常简单:
'use strict';
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
let uri = vscode.Uri.parse('video-player://authority/play');
class TextDocumentContentProvider implements vscode.TextDocumentContentProvider {
private _onDidChange = new vscode.EventEmitter<vscode.Uri>();
public provideTextDocumentContent(uri: vscode.Uri): string {
return `
<video crossorigin="anonymous" controls src="https://example.com/video.mp4"></video>
`;
}
get onDidChange(): vscode.Event<vscode.Uri> {
return this._onDidChange.event;
}
public update(uri: vscode.Uri) {
this._onDidChange.fire(uri);
}
}
let provider = new TextDocumentContentProvider();
let registration = vscode.workspace.registerTextDocumentContentProvider('video-player', provider);
let disposable = vscode.commands.registerCommand('extension.playVideo', () => {
return vscode.commands.executeCommand('vscode.previewHtml', uri, vscode.ViewColumn.Two, 'Video Player').then((success) => {
}, (reason) => {
vscode.window.showErrorMessage(reason);
});
});
context.subscriptions.push(disposable, registration);
}发布于 2018-08-07 20:37:28
这在VS代码1.71+中是可能的。该版本的VS代码现在包括对下列格式/编解码器的支持:
您应该能够像在普通网页上一样,以这些格式包括音频/视频。
对于VS代码的旧版本,这是不可能的,因为VS代码使用的电子版本不包括ffmpeg。这意味着许多常见媒体格式的回放在vscode或其webview中不受支持。没有改变这种状况的计划。(我是vscode的webview API的开发人员)
您可以尝试查找支持的格式(例如,gifs或mjpegs用于简短剪辑),也可以使用库来播放软件中的内容。
(PS. )不要使用vscode.previewHtml;使用正确的webview API)
https://stackoverflow.com/questions/48321919
复制相似问题