You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure Media Player API获取视频宽高以消除播放黑边

你需要监听播放器的loadedmetadata事件后再读取尺寸属性,播放器初始化完成时还未加载视频元数据,所以无法获取到videoWidth和videoHeight取值。

具体实现代码如下:

let myOptions = {
    controls: true,
    autoplay: true,
    logo: { enabled: false }
};
myPlayer = amp(video, myOptions);
// 监听视频元数据加载完成事件
myPlayer.on('loadedmetadata', () => {
    // 两种读取方式二选一即可
    // 方式1:调用AMP官方提供的接口
    const realWidth = myPlayer.videoWidth();
    const realHeight = myPlayer.videoHeight();

    // 方式2:读取原生video元素属性,兼容性更强
    // const nativeVideoEl = myPlayer.tech().el();
    // const realWidth = nativeVideoEl.videoWidth;
    // const realHeight = nativeVideoEl.videoHeight;

    console.log('视频实际宽高:', realWidth, realHeight);
    // 按视频比例调整播放器尺寸消除黑边,示例逻辑可根据自身需求调整
    const container = document.querySelector('#player-container');
    const aspect = realWidth / realHeight;
    container.style.height = `${container.clientWidth / aspect}px`;
});
myPlayer.src([{
    src: "<manifestURL>",
    type: "<type>"
}]);

补充说明:

  • 若需要适配窗口大小变化,可以额外监听resize事件,在回调中按上述比例逻辑重新计算播放器尺寸即可
  • 部分特殊编码的流可能要等playing事件触发后才能拿到准确的宽高,若loadedmetadata拿不到可以替换监听事件为playing

内容的提问来源于stack exchange,提问作者Stanton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:54:04