ntzyz's space

∠( ᐛ 」∠)_

Category

  • Linux
  • Web
  • Network
  • Algorithm
  • Other
  • Photos

Tags

  • Linux
  • JavaScript
  • A6300
  • HTML5
  • PowerShell
  • 狗
  • 雪
  • VPN
  • OpenWrt
  • AudioContext
  • node
  • PS4
  • Web
  • Surface
  • CSharp
  • SDL
  • Gaming
  • WebAssembly
  • iSCSI
  • USB
  • SQLite
  • HTML
  • NAT
  • Highcharts.js
  • Minecraft
  • PHP
  • iptables
  • UglifyJS
  • LeetCode
  • IPv6
  • Routing
  • MediaSource
  • Algorithm
  • PPTP
  • Tunnel
  • MPV
  • HDOJ
  • systemd
  • Highlight.js
  • Arch Linux
  • Node
  • SVP
  • Network

Recent replies

  • xzdry 发表于「DSC01072」
  • ntzyz 发表于「家里的傻狗」
  • ShellBin 发表于「家里的傻狗」
  • ntzyz 发表于「从网易云音乐到 Walkman 媒体播放器」
  • 庚宝 发表于「从网易云音乐到 Walkman 媒体播放器」
  • ntzyz 发表于「电子垃圾列表」
  • kiracca 发表于「电子垃圾列表」

Links

About me
WordPress 存档

ZephRay
>Lithia's Core
Yuno's Wonderland
notonokodds
春上冰月的博客
初春 · 姫
kasora's blog
徐靖峰 | 个人博客
Test2g
447f.Misaka
Project RC
Shell Bin
标签:JavaScript

在浏览器中使用 WebAssembly 解码 MP3 并播放

2018 年 2 月 26 日分类:Web#Web#JavaScript#WebAssembly#AudioContext

纯属闲得蛋疼

实际运行效果

首先我们需要准备好 WebAssembly 的工具链(大概可以这么叫吧),此处请参考 Compiling from C/C++ to WebAssembly | MDN 中的步骤 来完成。对于 Arch Linux 用户,可以从 AUR 中安装 emsdk:

yaourt -S emsdk

之后则是和 MDN 中的步骤一样,编译并配置 LLVM 和 Emscripten SDK:

sudo emsdk install --build=Release sdk-incoming-64bit binaryen-master-64bit
sudo emsdk activate --global --build=Release sdk-incoming-64bit binaryen-master-64bit
MORE

简易 Web Terminal 的实现

2017 年 8 月 26 日分类:Web#JavaScript#HTML5#Linux

说起来也是有趣,本来是研究一下 WebSocket 准备给论坛/博客增加实时更新之类的特性,结果看着看着就脑洞大开搞了这么个玩意儿((

首先明确一下,这里说的 Web Terminal 是指再网页中实现的,类似于终端模拟器的玩意儿。举例的话应该是类似于 Linode 的 LiSH 和 Visual Studio Code 中内置的那个终端,而不是 ConoHa 提供的 VNC 式的终端(其实那玩意儿是个远程桌面了)。最终目标的效果就是和 Secure Shell 类似:打开一个网页,就能启动一个网页所在服务器的 shell,比如到处都有的 bash 或者非常强大的 zsh,然后就可以与这个终端进行交互式的操作,比如使用 vim 编辑文件,或者查阅 man 中的手册。

MORE

单页应用下实现动态的脚本加载

2017 年 8 月 13 日分类:Web#JavaScript#HTML

之前在写自己的博客框架的时候遇到了一个问题:文章中的 script 标签没有任何作用,以 Vue 为 MVVM 框架举个例子:

MORE

[HTML] AudioContext 折腾笔记 01

2017 年 1 月 17 日分类:Web#AudioContext#JavaScript#HTML5

前天尝试了一波那个什么 MediaSourceExtension,结果发现那套API目前限制蛮大的,而且对我来说没什么帮助(audio/x-wav 完全不正常支持,audio/mpeg 也只能在 Chrome 上使用)于是只能放弃折腾了 QAQ

昨天突然想起之前写 nanoPlayer 的时候,使用了一个叫 Audio Context 的接口,nanoPlayer 用了这个 API 里的 createAnalyser 方法,来获得音频的频率数据,进而实现了一个频谱可视化功能。之前就注意到了这个接口中有个自定义 AudioBufferSource 的方法,可以指定若干 Float32Array 并交给浏览器播放,应该是蛮有意思的。

MORE

[HTML] MediaSource 折腾笔记 01

2017 年 1 月 16 日分类:Web#MediaSource#JavaScript#HTML5

MediaSource 是 HTML5 中的一个实验性特性,用于给 `HTMLMediaElement` 对象提供数据源。这里的数据源通常是使用 `XMLHttpRequest` 获得的数据。在 XHR 取得数据后,我们可以使用 JavaScript 对数据进行一些操作,比如提取 ID3、修改封装类型等等。 某 bilibili 开源的 Flv.js 就是使用这个特性实现的在 HTML5 环境下播放 H264 + AAC 格式的 FLV 视频。

最近在写 `Nano Player` 的时候遇到了两个比较尴尬的问题:1、ID3 信息必须手动指定;2、网易云音乐上下载的 MP3 由于某些原因必须缓冲 2MB 才能播放(详见MP3缓冲2MB才开始播放的解决方法)。于是想到是不是可以用这个 MediaSource 来暴改 MP3 呢?我也不知道

不管怎样,要用这个 MSE 来解决问题,首先就是要用它来播放文件(如果获得的数据直接喂给 MSE 都不能播放那还讨论个什么鬼)

MORE
  • «
  • 1
  • 2
  • »
Copyright © 2016-2019 ntzyz. All rights reversed.
Except where otherwise noted, content on this blog is licensed under CC-BY 2.0.