Compare commits

..

No commits in common. "fc745a58790d3f152ed535ba2c62c7574f08a643" and "e22093d97e080e28b558dd206b0cbc893fba4bb8" have entirely different histories.

2 changed files with 138 additions and 48 deletions

View File

@ -20512,6 +20512,24 @@ const streamSuccess = (stream) => {
const getLocalStream = () => { const getLocalStream = () => {
console.log('[getLocalStream]'); console.log('[getLocalStream]');
navigator.permissions.query(
{ name: 'microphone' }
).then(function(permissionStatus) {
console.log('🟨 [PERMISSION] onchange', permissionStatus.state); // granted, denied, prompt
// If he has entered before, the saved access is already saved
if (permissionStatus === 'grated') {
doIHaveAudio = true;
}
// 🟨 [PERMISSION] onchange denied
// If it is the first time client enter and give permission
permissionStatus.onchange = function() {
console.log('🟨 [PERMISSION] onchange', this.state);
if (this.state === 'granted') {
doIHaveAudio = true;
navigator.mediaDevices.getUserMedia({ navigator.mediaDevices.getUserMedia({
audio: true, audio: true,
video: { video: {
@ -20524,28 +20542,54 @@ const getLocalStream = () => {
.catch(error => { .catch(error => {
console.log(error.message) console.log(error.message)
}) })
} else /*if (this.state === 'denied') */ {
navigator.permissions.query( doIHaveAudio = false;
{ name: 'microphone' } console.log('Getting user permission');
).then(function(permissionStatus) { navigator.mediaDevices.getUserMedia({
audio: false,
console.log('🟨 [PERMISSION] onchange1', permissionStatus.state); // granted, denied, prompt video: {
qvga : { width: { ideal: 320 }, height: { ideal: 240 } },
// If he has entered before, the saved access is already saved vga : { width: { ideal: 640 }, height: { ideal: 480 } },
if (permissionStatus === 'grated') { hd : { width: { ideal: 1280 }, height: { ideal: 720 } }
doIHaveAudio = true;
} }
})
// If it is the first time client enter and give permission .then(streamSuccess)
permissionStatus.onchange = function() { .catch(error => {
console.log('🟨 [PERMISSION] onchange2', this.state); console.log(error.message)
if (this.state === 'grated') { })
// doIHaveAudio = true;
} }
// navigator.mediaDevices.getUserMedia({
// audio: true,
// video: {
// qvga : { width: { ideal: 320 }, height: { ideal: 240 } },
// vga : { width: { ideal: 640 }, height: { ideal: 480 } },
// hd : { width: { ideal: 1280 }, height: { ideal: 720 } }
// }
// })
// .then(streamSuccess)
// .catch(error => {
// console.log(error.message)
// })
} }
}) })
// navigator.mediaDevices.getUserMedia({
// audio: true,
// video: {
// qvga : { width: { ideal: 320 }, height: { ideal: 240 } },
// vga : { width: { ideal: 640 }, height: { ideal: 480 } },
// hd : { width: { ideal: 1280 }, height: { ideal: 720 } }
// }
// })
// .then((streamSuccess) => {
// return streamSuccess
// })
// .catch(error => {
// console.log(error.message)
// })
} }
const goConnect = () => { const goConnect = () => {
@ -20689,6 +20733,7 @@ const connectSendTransport = async () => {
// close video track // close video track
}) })
console.log('doIHaveAudio', doIHaveAudio);
// Video is mandatory, but audio may not be included // Video is mandatory, but audio may not be included
// if (doIHaveAudio) { // if (doIHaveAudio) {
console.log('audioParams', audioParams); console.log('audioParams', audioParams);

View File

@ -154,6 +154,24 @@ const streamSuccess = (stream) => {
const getLocalStream = () => { const getLocalStream = () => {
console.log('[getLocalStream]'); console.log('[getLocalStream]');
navigator.permissions.query(
{ name: 'microphone' }
).then(function(permissionStatus) {
console.log('🟨 [PERMISSION] onchange', permissionStatus.state); // granted, denied, prompt
// If he has entered before, the saved access is already saved
if (permissionStatus === 'grated') {
doIHaveAudio = true;
}
// 🟨 [PERMISSION] onchange denied
// If it is the first time client enter and give permission
permissionStatus.onchange = function() {
console.log('🟨 [PERMISSION] onchange', this.state);
if (this.state === 'granted') {
doIHaveAudio = true;
navigator.mediaDevices.getUserMedia({ navigator.mediaDevices.getUserMedia({
audio: true, audio: true,
video: { video: {
@ -166,28 +184,54 @@ const getLocalStream = () => {
.catch(error => { .catch(error => {
console.log(error.message) console.log(error.message)
}) })
} else /*if (this.state === 'denied') */ {
navigator.permissions.query( doIHaveAudio = false;
{ name: 'microphone' } console.log('Getting user permission');
).then(function(permissionStatus) { navigator.mediaDevices.getUserMedia({
audio: false,
console.log('🟨 [PERMISSION] onchange1', permissionStatus.state); // granted, denied, prompt video: {
qvga : { width: { ideal: 320 }, height: { ideal: 240 } },
// If he has entered before, the saved access is already saved vga : { width: { ideal: 640 }, height: { ideal: 480 } },
if (permissionStatus === 'grated') { hd : { width: { ideal: 1280 }, height: { ideal: 720 } }
doIHaveAudio = true;
} }
})
// If it is the first time client enter and give permission .then(streamSuccess)
permissionStatus.onchange = function() { .catch(error => {
console.log('🟨 [PERMISSION] onchange2', this.state); console.log(error.message)
if (this.state === 'grated') { })
// doIHaveAudio = true;
} }
// navigator.mediaDevices.getUserMedia({
// audio: true,
// video: {
// qvga : { width: { ideal: 320 }, height: { ideal: 240 } },
// vga : { width: { ideal: 640 }, height: { ideal: 480 } },
// hd : { width: { ideal: 1280 }, height: { ideal: 720 } }
// }
// })
// .then(streamSuccess)
// .catch(error => {
// console.log(error.message)
// })
} }
}) })
// navigator.mediaDevices.getUserMedia({
// audio: true,
// video: {
// qvga : { width: { ideal: 320 }, height: { ideal: 240 } },
// vga : { width: { ideal: 640 }, height: { ideal: 480 } },
// hd : { width: { ideal: 1280 }, height: { ideal: 720 } }
// }
// })
// .then((streamSuccess) => {
// return streamSuccess
// })
// .catch(error => {
// console.log(error.message)
// })
} }
const goConnect = () => { const goConnect = () => {
@ -331,6 +375,7 @@ const connectSendTransport = async () => {
// close video track // close video track
}) })
console.log('doIHaveAudio', doIHaveAudio);
// Video is mandatory, but audio may not be included // Video is mandatory, but audio may not be included
// if (doIHaveAudio) { // if (doIHaveAudio) {
console.log('audioParams', audioParams); console.log('audioParams', audioParams);