小编Kag*_*ght的帖子

我可以使用JavaScript进行某种实时媒体解码吗?

我已经实现了一个MJPEG/AVI1解析器,它从MJPEG文件中提取JPEG格式的帧.

我可以使用<canvas>元素在DOM上绘制带有提取的JPEG文件的图像,我也可以使用context.getImageData从中导出图像像素数据.

我可以制作某种视频流并实时附加这些提取的数据,以便用户可以无延迟地播放吗?我知道我可以使用<canvas>元素手动创建一个类似<video>的UI,但我发现Media Source Extensions目前允许本机<video>标签接收编码的字节流格式.我很好奇我是否能用原始像素数据做到这一点.

javascript video

7
推荐指数
1
解决办法
883
查看次数

我可以在块范围内对变量进行类型转换吗?

我有这个代码:

function foo(input: Blob): void;
function foo(input: string): void;
function foo(input: any) {
    if (typeof input === "string") {

    }   
    else if (input instanceof Blob) {

    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我想input在块范围内进行类型转换,而不是将其重新分配给另一个变量。

if (typeof input === "string") {
    declare input: string;
}   
else if (input instanceof Blob) {
    declare input: Blob;
}
Run Code Online (Sandbox Code Playgroud)

而不是:

if (typeof input === "string") {
    var str: string = input;
}   
else if (input instanceof Blob) {
    var blob: Blob = input;
}
Run Code Online (Sandbox Code Playgroud)

这在 TypeScript 中可能吗?

typescript

7
推荐指数
1
解决办法
1212
查看次数

即使unconsumedBufferLength为0,DataReader.loadAsync也正在完成

我使用以下代码在UWP WinRT上使用JSON流:

async function connect() {
    let stream: MSStream;
    return new CancellableContext<void>(
        async (context) => {
            // this will be called immediately
            stream = await context.queue(() => getStreamByXHR()); // returns ms-stream object
            await consumeStream(stream);
        },
        {
            revert: () => {
                // this will be called when user cancels the task
                stream.msClose();
            }
        }
    ).feed();
}

async function consumeStream(stream: MSStream) {
    return new CancellableContext<void>(async (context) => {
        const input = stream.msDetachStream() as Windows.Storage.Streams.IInputStream;
        const reader = new Windows.Storage.Streams.DataReader(input);
        reader.inputStreamOptions = Windows.Storage.Streams.InputStreamOptions.partial; …
Run Code Online (Sandbox Code Playgroud)

javascript windows-runtime typescript

6
推荐指数
1
解决办法
647
查看次数

如何防止文本溢出和被剪裁?

我需要在 flex 框中使用斜体字体,但文本由于溢出而被剪裁。

我想要的文本条件:

  1. 溢出必须不可见
  2. 文字不得剪裁

这是我目前的情况(小蓝框表示文本框大小)

在此处输入图片说明

我想要这个:

在此处输入图片说明

如何做到这一点?

我从这篇 SO 帖子中得到了一个 hack,但它造成了一个严重的问题,您可以在下面的代码段中看到。

我目前的代码在这里:

body {
  font-family: sans-serif;
  font-size: 30px;
}
.ellipsiswrap {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.italic {
  font-style: italic;
}
.italicguard {
  padding-right: 0.3em;
  margin-right: -0.3em;
}
.usernamewrapper {
  font-size: 1.2em;
  overflow: hidden;
  display: flex;
  background-color: #303030;
  color: #fff;
}
.opacity5 {
  opacity: 0.5;
}
.screenname {
  margin-left: 0.3em;
  flex: 1;
}

.widthlimit150 {
  width: 300px;
}

.widthlimit70 {
  width: 140px; …
Run Code Online (Sandbox Code Playgroud)

html css

5
推荐指数
1
解决办法
1898
查看次数

如何检测Windows 10亮/暗模式?

我正在使用Windows.UI.ViewManagement.UISettings系统强调色,但似乎这个类没有任何方法或属性用于明/暗模式.我找不到这个功能的文档,我怎么能检测到这个?

PS:我正在制作一个无法访问Windows.UI.Xaml命名空间的JS应用程序.

windows uwp windows-10-universal

5
推荐指数
3
解决办法
4035
查看次数

如何在语法上专注于没有轮廓的 HTML 元素?

注意::focus { outline: none }不应该是答案,因为它也会在按 Tab 键导航时阻止轮廓

单击按钮不显示轮廓,但按钮变为document.activeElement( JSFiddle )。我想在不点击鼠标的情况下模仿这种行为。

在此处输入图片说明

该方法应该:

  1. 使元素为document.activeElement.
  2. 不引起轮廓
  3. 按下键盘 Tab 键时仍然允许轮廓

(如果有人问,我目前的意图是聚焦一个模态对话框,并在对话框关闭时将焦点返回到前一个聚焦的元素。这需要防止轮廓以获得无缝体验。)

伪代码:

showDialog();

function whenDialogClosed() {
  previouslyFocused.focus(); // should not display outline
}
Run Code Online (Sandbox Code Playgroud)

html javascript

5
推荐指数
1
解决办法
3058
查看次数

PInvoke可以将[out]参数转换为返回值吗?

我是 PInvoke 新手,需要一些帮助。

我想使用 PInvoke 访问 IEnumGUID,并且我在pinvoke.net上找到了一个代码块。

 [ComImport, Guid("0002E000-0000-0000-C000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), ComVisible(false)]
 public interface IEnumGUID
 {
     int Next(int celt, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)]Guid[] rgelt);
     void Skip(int celt);
     void Reset();
     [return: MarshalAs(UnmanagedType.Interface)]
     IEnumGUID Clone();
 }
Run Code Online (Sandbox Code Playgroud)

这里的Clone函数将IEnumGUID作为返回值,而原始C++接口中的函数将其作为输出参数

HRESULT Clone(
  [out]  IEnumGUID **ppenum
);
Run Code Online (Sandbox Code Playgroud)

我了解到PInvoke自动将HRESULT转换为COMException,但我不知道PInvoke如何将out参数转换为返回值

请对此进行一些解释,以便我以后能够正确使用该方法。

c# pinvoke

3
推荐指数
1
解决办法
565
查看次数

如何让`let`语句在主要的三个浏览器上运行?

Firefox 需要使用<script type="application/javascript;version=1.7">激活ES6 let语句支持.

注意:let关键字仅适用于包含在<script type ="application/javascript; version = 1.7"> block(或更高版本)中的HTML中的代码块.XUL脚本标签可以访问这些功能而无需此特殊块.

但是,这似乎实际上会停用Internet Explorer和Chrome上的整个脚本,因为他们的调试器不再显示脚本.

示例:http://embed.plnkr.co/7YvyDZfPRsijqrHJnhMf/preview

有没有办法application/javascript;version=1.7在IE/Chrome上使用,或者let在没有type属性的情况下在Firefox 上使用ES6 ?

是否有任何hack可以激活let所有主流浏览器的语句支持,而它们的实现不是100%符合标准的?

html javascript firefox internet-explorer google-chrome

3
推荐指数
1
解决办法
616
查看次数

进行中的感叹号对 JSDoc @type 标签有什么作用?

VS Code 解析以下内容,就好像没有感叹号一样,没有任何错误:

const el = /** @type {HTMLElement!} */ (document.getElementById("abc"));
Run Code Online (Sandbox Code Playgroud)

它有什么作用?官方 JSDoc 文档仅说明了前面的标记

表示该值属于指定类型,但不能为空。

不确定后续标记的作用。

javascript google-closure-compiler jsdoc visual-studio-code

2
推荐指数
1
解决办法
1773
查看次数