【问题标题】:YouTube iframe Embed can't control audio on iPadYouTube iframe Embed 无法控制 iPad 上的音频
【发布时间】:2023-03-15 23:59:02
【问题描述】:

我一直在使用 YouTube iframe API,并使用 Flash CC HTML5 画布为 YouTube 播放器创建了一组基本的播放器控件。这些控件包括一个播放/暂停按钮、一个带有可拖动播放头和缓冲视觉指示的视频栏,以及一个音量控制器。在我桌面上的 Chrome 中一切正常。

但是,当我在 iPad 上测试播放器时,除了音量控制器之外,一切都正常。滑块移动得非常好,但不会导致音量发生变化。

我在网上环顾四周,并没有找到任何特定于 iPad 上音量无法控制的问题,而且由于 iPad 上没有开发控制台,我无法真正在里面四处寻找到底发生了什么.

如果有人对此问题有任何经验或对可能发生的情况有任何一般见解,将不胜感激。

这是一个 JSFiddle https://jsfiddle.net/y3dL9jsw/1/,其中包含项目。

这里是音量控制相关的代码:

    //Volume Control
mainStage.mcplayer.mcvolumecontrol.volIcon.on("mousedown", function(evt){
    if(mainStage.mcplayer.mcvolumecontrol.currentFrame == 0){
        mainStage.mcplayer.mcvolumecontrol.gotoAndStop(1);
    }else{
        mainStage.mcplayer.mcvolumecontrol.gotoAndStop(0);
    }
});
//Mouse Down Pick-up Video Playhead, Change Cursor to pointy finger
mainStage.mcplayer.mcvolumecontrol.mcvolhead.on("mousedown", function(evt){
    isVolGrabbed = true;
    document.body.style.cursor='pointer';
});
//Mousemove Move Voulme Playhead
mainStage.mcplayer.mcvolumecontrol.mcvolhead.on("pressmove", function(evt){
    if(isVolGrabbed == true){
        evt.nativeEvent.preventDefault();//stop browser default actions from happening (Selecting text, etc)
        this.x = evt.stageX - mainStage.mcplayer.x - mainStage.mcplayer.mcvolumecontrol.x;//make playhead follow mouse 
        //constrain playhead x coords to the videobar
        if(this.x < 0 + mainStage.mcplayer.mcvolumecontrol.mcvolslider.x){this.x = mainStage.mcplayer.mcvolumecontrol.mcvolslider.x;}
        if(this.x > volbarLength + mainStage.mcplayer.mcvolumecontrol.mcvolslider.x){this.x = volbarLength + mainStage.mcplayer.mcvolumecontrol.mcvolslider.x;}
        //if the mouse gets too far from the bar along the y axis, drop the head change back the cursor
        //this is important because the Youtube player breaks the mouse events if you mouse over it
        if((evt.stageY - mainStage.mcplayer.y) < (-1 * playheadConstrain) || (evt.stageY - mainStage.mcplayer.y) > playheadConstrain){
            document.body.style.cursor='auto';
            isVolGrabbed = false;
            }
    }
});

mainStage.mcplayer.mcvolumecontrol.mcvolhead.on("pressup", function(evt){
    document.body.style.cursor='auto';
    volFraction = (mainStage.mcplayer.mcvolumecontrol.mcvolhead.x - mainStage.mcplayer.mcvolumecontrol.mcvolslider.x) / (volbarLength);
    playeryt.setVolume(volFraction * 100);
    console.log("vol Drop" + volFraction);
    isVolGrabbed = false;
});

【问题讨论】:

    标签: javascript ios html youtube youtube-api


    【解决方案1】:

    根据Safari Docs,volume属性是只读的,不能设置。

    在 iOS 设备上,音频电平始终低于用户的物理水平 控制。音量属性在 JavaScript 中不可设置。读 volume 属性总是返回 1。

    您不能以编程方式设置视频的音量。

    【讨论】:

    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 2013-03-28
    • 2021-08-21
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 2018-08-02
    • 2013-03-03
    相关资源
    最近更新 更多