之前做PPT錄制的時候,一個電腦顯示臺詞,一個電腦錄制,然后顯示臺詞的那個電腦沒幾分鐘就黑屏,煩不勝煩,沒辦法,就打開一個視頻,窗口小小的,也就是畫中畫模式,
今天才發現,原來不久前,Chrome和Safari瀏覽器都支持了名為Screen Wake Lock的API,可以設置Web網頁打開的狀態下,顯示器屏幕不會自動休眠。
根據我查找的資料顯示,美國知名烹飪網站 Betty Crocker 實現 Screen Wake Lock API 后, 發現其用戶的購買意愿指標增加了 300%。如需了解詳情,請參閱 ? Betty Crocker 案例研究。
這還真是意外,居然還可以增加產品的直接收益。
不過應該只對特定網站有用,像是做飯的網站,用戶做菜的時候,肯定是希望網頁一直亮著的,因為要時不時看,所以,收益才這么明顯。
如果是傳統的社交網站應該作用就一般了,不知道小說閱讀類網站的收益如何……
這個之后再議,當下我就有一個需求場景,某項目介紹頁面,進入演講模式的時候,一定是不能息屏的。
就可以使用這里的Screen Wake Lock API了。
這種語法簡單的API的最快捷的學習方式就是案例。
您可以狠狠地點擊這里:顯示器屏幕喚起鎖定JS實現demo
只要勾選如下圖所示的復選框,那么,無論等待多久,屏幕都會一直保持亮蹭蹭的狀態。
要想屏幕保持喚起狀態,很簡單,一行代碼的事情:
navigator.wakeLock.request('screen');
結束了,就這么簡單。
由于保持屏幕喚醒是一個占用資源開銷的操作,所以,瀏覽器有個行為,那就是如果當前頁面最小化,或者非當前顯示標簽頁,屏幕的Wake鎖定行為會被釋放,用戶再切換過來的時候,就沒有鎖定了,因此,還需要其他代碼的處理。
document.addEventListener('visibilitychange', ()=> {
if (document.visibilityState==='visible') {
navigator.wakeLock.request("screen")
}
});
還沒完,如果僅僅只是wakeLock,在實操過程中,很容易重復執行喚醒鎖定,因此,還需要知道什么時候釋放了屏幕喚醒操作,以及如何主動釋放禁止熄屏的功能。
這就要說一說 WakeLockSentinel 對象了,該對象是navigator.wakeLock.request(‘screen’)這個Promise執行后的返回值。
我們可以使用then()獲取,例如:
let wakeLock=null;
navigator.wakeLock.request('screen').then(result=> {
wakeLock=result;
})
也可以使用async/await語法,例如:
let wakeLock=null;
async ()=> {
wakeLock=await navigator.wakeLock.request('screen');
}
主動釋放
想要釋放熄屏鎖定,則可以借助上面的wakeLock對象,代碼示意:
wakeLock.release().then(()=> {
wakeLock=null;
});
以及,我們可以知道什么時候喚醒鎖定是什么時候釋放的,使用release事件:
wakeLock.addEventListener('release', ()=> {
console.log('喚醒鎖定已釋放');
});
相關代碼在demo演示頁面均有體現。
屏幕喚起鎖定不是沒有代價的,如果屏幕一直保持明亮,會阻止屏幕保護程序的啟動,會影響顯示器的壽命。
對于移動設備,屏幕往往是最耗電的,因此,阻止熄屏會帶來更高的電量開銷,因此,非必要場景是不推薦啟用熄屏鎖定的。
要求
此API要想生效,需要是https協議,或者是localhost本地環境。
兼容性
目前Chrome和Safari瀏覽器均已經支持wake-lock特性,Firefox已經開啟實驗支持,按照歷史經驗,沒多久就會正式支持了,此API全面使用指日可待。
碎碎念時間
春節前新書寫完,于是決定給自己放三個月的假,每天早睡,每周釣兩場魚,自然而然,文章更新頻率就下來了。
一轉眼,也是快40的人了,時間真的是塊,今天還看了自己10年前的照片,仿佛就在昨天。
心態也變了很多,更平和,更穩定了,但也造成創造力下降了,以往的那些奇思妙想現在很難再迸發出來了,所以,究竟是變得更好還是有所退步,一時也說不清楚。
一直想什么時候弄個魚塘玩玩,可惜當下沒有那么多時間和精力,難道要等退休,或者兼職搞魚塘,不行不行,沒那么多時間。
哎呀,想遠了,先換個可以隨便養魚的大房子再說吧。
轉自:https://www.zhangxinxu.com/wordpress/2024/03/js-screen-wake-lock-api/
MIUI10在音效上面所花功夫還是相對較多的,白噪音、永聽不膩的通知音;目前用戶能自定義的音效只有電話、短信、通知、日歷四個欄目音效,而解鎖、鎖屏、截圖、刪除文件等音效暫不支持自定義。單調的音效導致用戶并不是很喜歡,本篇“米柚講堂”給大家分享如何關閉鎖屏、截圖這類音效,通過工具自定義音效,去掉枯燥乏味的原始音效。
MIUI10鎖屏音效與解鎖音效目前是統一開關,不能單獨只選擇關閉,開啟時則鎖屏與解鎖都有音效,關閉時鎖屏與解鎖都無音效。關閉步驟:打開系統設置,選擇聲音和震動,下滑到底部關閉“鎖屏提示音”即可。此設置頁,還可以截圖音效、文件刪除音效,根據自己喜好設置,個人其實挺喜歡有音效的狀態。
用戶之所以想選擇關閉,大部分原因還是因為音效未能符合自身品味需求,而MIUI又不提供自定義,退求其次便選擇關閉。簡單點判斷,指紋直接解鎖后手機屏幕開啟,鎖屏后屏幕關閉,因此我們可以通過設定屏幕開啟時為解鎖音效,屏幕關閉時為鎖屏音效。此方法模擬解鎖與鎖屏,唯一缺點如果是亮屏不解鎖,它依然會觸發屏幕開啟音效。
打開AutomateIt Pro工具,選擇新建規則,首先選擇觸發條件為屏幕開啟或者屏幕關閉;點擊下一步設置行為,行為里可以設置直接選擇一段音頻文件,也可以選擇語音閱讀文本;觸發與行為設定好后,點擊下一步保存,勾選彈出提示否與始終處于激活狀態,最后點擊右上角保存即可。
AutomateIt Pro是一款很古老的工具,但是功能齊全,有興趣的朋友可以試試。它不僅僅支持設置單項觸發條件,還可以設置多個條件同時滿足才觸發,或者滿足其中一項則觸發;自動行為也是如此,支持設置多個操作一起,是一款不錯的玩機工具。
,歡迎大家關注!