【发布时间】:2019-11-09 00:35:22
【问题描述】:
iOS 上的 Safari 在其锁定屏幕上为简单的 HTMLAudioElements 放置了一个洗涤器。例如:
const a = new Audio();
a.src = 'https://example.com/audio.m4a'
a.play();
JSFiddle:https://jsfiddle.net/0seckLfd/
锁定屏幕允许我在当前播放的音频文件中选择一个位置。
如何禁用用户在锁定屏幕上擦除文件的功能?元数据显示 很好,并且能够暂停/播放也是可以接受的,但如果需要,我也可以禁用它。
【问题讨论】:
-
我猜功能是由程序代码决定的。我只想参考是否允许用户在锁定屏幕上擦洗文件。但是,设计指南不允许这样做,因为它需要用户操作才能产生某些效果。
-
@GillsoftAB 不幸的是,在某些情况下,例如内容许可协议,不允许用户擦洗。我正在研究一种方法,可以在用户尝试查找文件时返回到上次偏移量,但这很麻烦,而且用户体验不好。
-
忽略用户更改,除非某些条件。例如if (make_ui_change && user_paid) { ... } 这就是我所做的。然后任何拖动的项目都会正确地重新对齐(但仍然可以拖动而没有效果)。
-
@GillsoftAB 是的,这就是我正在采取的方法。不幸的是,我没有直接从这些控件中获得任何事件。媒体元素由这个操作系统小部件直接控制,所以我只能在事后做出回应。我已经尝试过
e.preventDefault()和e.stopPropagation()以及seeked和seeking事件中没有的东西,但它们什么也没做。因此,我认为我能做的最好的事情就是跟踪时间,然后再寻找它。 -
啊,你用的是 React Native 还是类似的?还是你使用 Apple Music API?
标签: javascript ios mobile-safari html5-audio lockscreen