亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS如何獲取瀏覽器聲音、麥克風(fēng)以及通知權(quán)限

 更新時(shí)間:2024年03月25日 11:44:02   作者:養(yǎng)老的null  
在我們開發(fā)網(wǎng)頁的時(shí)候偶爾會有需要用戶錄音的情況,下面這篇文章主要給大家介紹了關(guān)于JS如何獲取瀏覽器聲音、麥克風(fēng)以及通知權(quán)限的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

今天遇到一個(gè)需求,后端socket推送警告消息,瀏覽器提示消息彈框和聲音。但是初次打開頁面發(fā)小聲音播放失敗,控制臺報(bào)錯:

錯誤內(nèi)容:play() failed because the user didn't interact with the document first.

意思就是,用戶沒有在當(dāng)前頁面進(jìn)行任何操作。

方案一:手動打開瀏覽器聲音權(quán)限,在瀏覽器地址欄輸入下面鏈接打開瀏覽器設(shè)置

(經(jīng)過測試這個(gè)鏈接地址沒有辦法通過a標(biāo)簽和js打開)

Google瀏覽器:chrome://settings/content/sound

Firefox瀏覽器:about:preferences#privacy

Edge瀏覽器:edge://settings/content/mediaAutoplay

方案二:聲音播放失敗提示用戶手動授權(quán),只要用戶跟當(dāng)前頁面存在交互,瀏覽器就不會存在這個(gè)錯誤。

// 加載聲音
const sound = new Audio(`video.mp3`)
// 播放聲音
sound.play()
.then((res) => {
    console.log('視頻播放成功')
})
.catch((error) => {
    // if (error.message.indexOf('didn't interact') !== -1) 判斷報(bào)錯內(nèi)容
    // 如果視頻播放失敗在這里彈出提示框
    alert('由于您的瀏覽器設(shè)置,報(bào)警聲音無法自動播放,請點(diǎn)擊確認(rèn)按鈕授權(quán)播放。')
})

這里說下目前沒有發(fā)現(xiàn)獲取聲音權(quán)限和設(shè)置聲音權(quán)限的API

上面是解決辦法,下面講一下瀏覽器獲取麥克風(fēng)、通知,視頻權(quán)限

1、可以通過navigator.permissions.query API 查詢?yōu)g覽器權(quán)限是否開啟。

// 查詢麥克風(fēng)權(quán)限
navigator.permissions.query({ name: 'microphone' })
.then((res) => {
    if (res.state === 'granted') {
       // 已授權(quán)
    }
})

// 查詢相機(jī)權(quán)限
navigator.permissions.query({ name: 'camera' })
.then((res) => {
    if (res.state === 'denied') {
       // 拒絕授權(quán)
    }
})

返回的結(jié)果:{name: "", onchange: "", state: ""}

下面權(quán)限列表,都經(jīng)過測試。

microphone           麥克風(fēng)權(quán)限

camera                  相機(jī)權(quán)限

geolocation            地理位置信息

notifications。        網(wǎng)站顯示桌面通知權(quán)限

....等權(quán)限

 2、可以通過navigator API 設(shè)置瀏覽器允許權(quán)限。

// 設(shè)置麥克風(fēng)權(quán)限
navigator.mediaDevices.getUserMedia({ audio: true })
.then((res) => {
    // 允許麥克風(fēng)權(quán)限
})
.catch((error) => {
    // 拒絕麥克風(fēng)權(quán)限
})

navigator.geolocation.getCurrentPosition(
() => {
    // 允許地理位置權(quán)限
},
() => {
    // 拒絕地理位置權(quán)限
})

下面設(shè)置權(quán)限,都經(jīng)過測試。

navigator.mediaDevices.getUserMedia({ audio: true }).then()      麥克風(fēng)權(quán)限

navigator.mediaDevices.getUserMedia({ video: true }).then()      攝像頭權(quán)限

navigator.geolocation.getCurrentPosition(callback)                     地理位置權(quán)限

Notification.requestPermission().then()                                        通知權(quán)限

.....等設(shè)置權(quán)限

 經(jīng)過在Google、Firefox、Safari、Edge瀏覽器上測試,發(fā)現(xiàn)只有Google瀏覽器全部支持,其他瀏覽器只部分支持。

總結(jié)

到此這篇關(guān)于JS如何獲取瀏覽器聲音、麥克風(fēng)以及通知權(quán)限的文章就介紹到這了,更多相關(guān)JS獲取瀏覽器權(quán)限內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何編寫一個(gè)Typescript的類型聲明文件

    詳解如何編寫一個(gè)Typescript的類型聲明文件

    我們知道TypeScript根據(jù)類型聲明進(jìn)行類型檢查,但有些情況可能沒有類型聲明,這個(gè)時(shí)候就需要我們自己寫一個(gè),下面小編就來和大家聊聊如果寫一個(gè)Typescript的類型聲明文件呢
    2023-06-06
  • js實(shí)現(xiàn)簡單拼圖小游戲

    js實(shí)現(xiàn)簡單拼圖小游戲

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡單拼圖小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JavaScript事件委托技術(shù)實(shí)例分析

    JavaScript事件委托技術(shù)實(shí)例分析

    這篇文章主要介紹了JavaScript事件委托技術(shù),實(shí)例分析了事件委托技術(shù)的原理、適用場合及用法實(shí)例,需要的朋友可以參考下
    2015-02-02
  • 深入解析JavaScript中函數(shù)的Currying柯里化

    深入解析JavaScript中函數(shù)的Currying柯里化

    這篇文章主要介紹了JavaScript中函數(shù)的Currying柯里化,Currying 的重要意義在于可以把函數(shù)完全變成"接受一個(gè)參數(shù)、返回一個(gè)值"的固定形式,需要的朋友可以參考下
    2016-03-03
  • 基于JavaScript實(shí)現(xiàn)跳轉(zhuǎn)提示頁面

    基于JavaScript實(shí)現(xiàn)跳轉(zhuǎn)提示頁面

    這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)跳轉(zhuǎn)提示頁面 的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • JavaScript Canvas編寫炫彩的網(wǎng)頁時(shí)鐘

    JavaScript Canvas編寫炫彩的網(wǎng)頁時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了JavaScript Canvas編寫炫彩的網(wǎng)頁時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 微信小程序中視頻的顯示與隱藏功能

    微信小程序中視頻的顯示與隱藏功能

    這篇文章主要介紹了微信小程序中視頻的顯示與隱藏,思路大概是定義一個(gè)標(biāo)記變量,控制視頻的播放與暫停,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • 跟我學(xué)習(xí)javascript的隱式強(qiáng)制轉(zhuǎn)換

    跟我學(xué)習(xí)javascript的隱式強(qiáng)制轉(zhuǎn)換

    跟我學(xué)習(xí)javascript的隱式強(qiáng)制轉(zhuǎn)換,感興趣的小伙伴們可以學(xué)習(xí)一下
    2015-11-11
  • javascript中返回頂部按鈕的實(shí)現(xiàn)

    javascript中返回頂部按鈕的實(shí)現(xiàn)

    這篇文章主要介紹了使用javascript實(shí)現(xiàn)博客園頁面右下角返回頂部按鈕的思路及源碼,非常不錯,這里推薦給小伙伴們
    2015-05-05
  • 仿iPhone通訊錄制作小程序自定義選擇組件的實(shí)現(xiàn)

    仿iPhone通訊錄制作小程序自定義選擇組件的實(shí)現(xiàn)

    這篇文章主要介紹了仿iPhone通訊錄制作小程序自定義選擇組件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論