AudioContext 为什么会从 suspended 开始,必须在哪类事件里 resume 才可靠?
围绕“AudioContext 为什么会从 suspended 开始,必须在哪类事件里 resume 才可靠”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须把状态机与用户激活绑定到可听输出。
浏览器 · 文件与多媒体面试题第 1 页,显示第 1–47 题,共找到 47 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“AudioContext 为什么会从 suspended 开始,必须在哪类事件里 resume 才可靠”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须把状态机与用户激活绑定到可听输出。
围绕“浏览器自动播放策略下,为什么 muted 常能播而带声音失败,如何检测并降级”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明用户激活/媒体参与度和 play() 拒绝处理。
围绕“上传超大文件时用 Blob.slice 分片的边界条件是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 slice 是惰性视图且 size/type/endings 影响结果。
区分Blob.type的声明来源与真实字节,说明空值下浏览器无内置嗅探能力,演示用FileReader或arrayBuffer读取前几字节识别常见图片音视频签名,以及无法覆盖无签名格式的边界。
围绕“用 requestAnimationFrame 驱动 Canvas 动画时,组件隐藏或卸载要取消什么避免幽灵绘制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确句柄保存、标签页可见性与最后一帧状态提交。
围绕“createImageBitmap 相比直接 new Image 解码,在 Canvas 高频绘制中解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明可提前解码、可控制 resize/colorSpace 并便于 Transferable。
本文解释 Canvas 高 DPR 屏幕模糊的机制:CSS 像素与位图像素分离;给出标准设置方法,强调 ctx.setTransform 复位避免变换叠加,并讨论 resize 与动画中的边界。
围绕“CanvasRenderingContext2D.filter 能直接替代离线预处理图片滤镜吗,边界是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按支持度、每帧重复求值成本与离屏缓存决策。
围绕“频繁整幅 getImageData/putImageData 的瓶颈在哪里,什么局部策略能降低主线程压力”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须定位 GPU 回读与 RGBA 内存拷贝。
围绕“Canvas 的 globalCompositeOperation 在蒙版、橡皮擦、高亮中应如何选择而不是试错”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按源/目标 alpha 与颜色混合语义选择模式。
围绕“Path2D 适合缓存什么,为什么复杂图形重绘和命中检测会受益”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明路径对象可复用并交给 fill/stroke/isPointInPath。
围绕“CanvasRenderingContext2D.save/restore 滥用为什么会让绘制变慢,应如何界定栈边界”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明保存的是裁剪、变换、样式等大状态且配对成本随嵌套放大。
围绕“为什么跨域图片画进 Canvas 后 getImageData 会抛错,如何合法解除污染”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明 origin-clean flag 与 crossOrigin 匿名凭证模式。
围绕“Canvas 文本排版为什么必须依赖 measureText 而不是按字符数估算换行”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确字体度量、字距、方向与 maxWidth 对宽度的影响。
本题解析HTMLCanvasElement导出的两种API机制差异:二进制Blob与Base64字符串、同步与异步、编码质量参数作用范围,以及大图工程选型与边界。
围绕“getContext('2d', { willReadFrequently:true }) 应该在什么读回模式下开启”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明该提示偏向 CPU 画布以降低重复读回成本。
围绕“navigator.clipboard.readText 读取剪贴板前应如何提示并处理空内容、权限拒绝与格式不符”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确异步拒绝分支与隐私提示。
围绕“navigator.clipboard.writeText 为什么常在非用户激活或权限被拒时失败”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明安全上下文、权限与瞬时激活要求。
围绕“用 ClipboardItem 写入 text/html 与 text/plain 时,为什么要同时提供纯文本并清洗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明富文本消费者差异与 XSS/样式污染风险。
围绕“copy/cut/paste 事件里的 event.clipboardData 与 Clipboard API 读写”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分事件内同步改本次剪贴板与异步权限 API。
围绕“拖放自定义数据用 setData 自定义 MIME 时,什么信息不该放,跨窗口读取边界是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明拖放数据受同源/会话与粘贴板语义限制且敏感信息可见。
围绕“DataTransfer.items、files、types 在读取拖入内容时分别解决什么判断”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分 kind/type 探测、文件物化与字符串数据。
围绕“HTML 拖放中为什么必须阻止 dragover 默认行为,drop 才大概率触发”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 drop 目标有效性由 dragover/dragenter 默认允许决定。
围绕“拖放交互里 effectAllowed 与 dropEffect 不一致会造成什么视觉与结果错配”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明源端声明能力与目标端实际操作的握手关系。
围绕“drop 事件拿到 FileList 后,前端应先做哪些尺寸、类型、数量校验再进入解析”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 fail-fast 队列与可读错误反馈边界。
围绕“enumerateDevices 为什么在授权前 label 为空,拿到流后应如何刷新设备列表”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须把标签可见性与活动轨道权限绑定。
本文解释为何 File.name 与 File.lastModified 不能用于唯一键或新鲜度判断,通过同名校验和时钟修改场景说明其不可信边界,并给出基于内容哈希和服务器元数据的替代方案。
本文解释 File 与 Blob 的本质区别:File 是带文件元数据的 Blob 子类。同时说明哪些场景不能只按 Blob 处理——例如需要文件名、最后修改时间或目录相对路径时——并给出判断方法和边界。
围绕“FileReader 的 readAsText、readAsArrayBuffer、readAsDataURL 应如”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按目标格式、编码与内存代价选型。
围绕“视频全屏应该请求 video 元素还是容器元素,iOS 行为差异为什么要单列”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明元素级全屏 API 与移动端原生控件回退。
围绕“getDisplayMedia 请求屏幕共享时,audio、surfaceSwitching、preferCurre”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明屏幕/标签页/窗口音频支持差异与选择器不可完全脚本控制。
围绕“getUserMedia 的 ideal/exact/deviceId 约束怎样设计降级,Overconstrain”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确软硬约束优先级与失败后放松约束策略。
本文解释 input accept 属性的本质是选择提示而非安全边界,给出其可被绕过的情况。说明如何在前端通过 File.type 和扩展名进行辅助校验,并强调服务端校验的必要性,以及失败时的用户提示和体验兜底。
围绕“在选清晰度前用 MediaCapabilities.decodingInfo 判断什么,不能拿它保证什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 supported/smooth/powerEfficient 是估计而非独占资源承诺。
围绕“HTMLMediaElement 的 readyState、canplay、loadeddata、canplayth”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须把元数据、首帧可播、连续播放估计映射到 UI 门槛。
围绕“<video> 的 preload=none/metadata/auto 在移动网络下应如何选择,不能假设什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 preload 是提示且浏览器可忽略。
围绕“拖动 HTMLMediaElement.currentTime 时如何用 buffered 与 seeking/se”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 TimeRanges 查询与 seeking 状态机。
围绕“MediaRecorder 选型时如何校验 MIME 支持,start(timeslice) 对 ondataava”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明容器/编码协商与分片触发时机。
围绕“MediaRecorder.stop 后为什么不能立刻用已收 Blob,还要等最后一次 dataavailable”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明异步冲刷尾部数据与 onstop 次序。
围绕“Media Source Extensions 中向 SourceBuffer appendBuffer 为什么要等”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明 updating 队列、时间轴连续性与 abort/remove 边界。
围绕“Safari 原生可播 HLS 而其他桌面浏览器常走 MSE 时,播放器封装应如何分流”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用 canPlayType 与 MediaSource.isTypeSupported 双判定。
本文讲解 object URL 为何会占住 Blob 内存,通过大图预览实例展示未撤销时的累积过程,说明不同页面生命周期下的影响程度,并给出统一的撤销时机与判断方法。
围绕“OffscreenCanvas 什么时候该转移到 Worker,转移所有权后主线程还能做什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确长任务渲染移出主线程与 canvas 控制权一次性转移。
围绕“Permissions API query 摄像头/麦克风状态时,name 支持与 change 事件边界是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明权限名支持差异与状态只反映许可不代表设备可用。
围绕“setDragImage 自定义拖拽预览图时,图像来源和 offset 设置有哪些坑”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确图片需已加载/可见约束与热点坐标语义。
围绕“结束摄像头采集时为什么必须 stop 所有 MediaStreamTrack 而不是只移除 video.srcObj”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明轨道停止才释放硬件并触发 ended/inactive 状态。
围绕“Web Audio 中 decodeAudioData 得到 AudioBuffer 后,播放采样率与 AudioC”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确解码重采样到上下文采样率及 buffer 长度映射。