Azure ਕਮਿਊਨੀਕੇਸ਼ਨ ਸਰਵਿਸਿਜ਼ ਹੈਂਡਲਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ 1:1.NET MAUI ਕਾਲਾਂ ਨਾਲ ਵਨ-ਵੇਅ ਆਡੀਓ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨਾ

Audio

Azure ਸੰਚਾਰ ਸੇਵਾਵਾਂ ਨਾਲ ਮੋਬਾਈਲ 1:1 ਕਾਲਾਂ ਵਿੱਚ ਆਡੀਓ ਚੁਣੌਤੀਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ

ਇੱਕ ਮਜਬੂਤ 1:1 ਵੀਡੀਓ ਕਾਲ ਵਿਸ਼ੇਸ਼ਤਾ ਵਿਕਸਿਤ ਕਰਨਾ ਵਿਲੱਖਣ ਚੁਣੌਤੀਆਂ ਪੇਸ਼ ਕਰ ਸਕਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ Azure ਕਮਿਊਨੀਕੇਸ਼ਨ ਸਰਵਿਸਿਜ਼ (ACS) ਵਰਗੀਆਂ ਸੇਵਾਵਾਂ ਨੂੰ ਇੱਕ .NET MAUI ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਏਕੀਕ੍ਰਿਤ ਕਰਨਾ। ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਜਿਸਦਾ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ ਉਹ ਕਾਲਾਂ ਦੌਰਾਨ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਹੈ, ਜਿੱਥੇ ਕਾਲ ਕਰਨ ਵਾਲਾ ਕਾਲਰ ਨੂੰ ਸੁਣ ਸਕਦਾ ਹੈ, ਪਰ ਕਾਲਰ ਕਾਲ ਨੂੰ ਨਹੀਂ ਸੁਣ ਸਕਦਾ।

ਇਹ ਮੁੱਦਾ ਖਾਸ ਤੌਰ 'ਤੇ ਨਿਰਾਸ਼ਾਜਨਕ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਡੈਸਕਟੌਪ ਜਾਂ ਕੁਝ ਮੋਬਾਈਲ ਡਿਵਾਈਸਾਂ 'ਤੇ ਦੋ-ਪੱਖੀ ਵੀਡੀਓ ਅਤੇ ਆਡੀਓ ਸਮੇਤ ਬਾਕੀ ਸਭ ਕੁਝ ਠੀਕ ਕੰਮ ਕਰਦਾ ਹੈ। ਆਡੀਓ ਮੁੱਦੇ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰਨ ਲਈ ਮੋਬਾਈਲ ਪਲੇਟਫਾਰਮਾਂ 'ਤੇ ਅਨੁਮਤੀਆਂ, ਡਿਵਾਈਸ ਪ੍ਰਬੰਧਨ, ਅਤੇ ਮਾਈਕ੍ਰੋਫੋਨ ਚੋਣ ਦੀ ਸੰਰਚਨਾ ਵਿੱਚ ਡੂੰਘੀ ਡੁਬਕੀ ਦੀ ਲੋੜ ਹੈ।

ACS ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਦੇ ਹੋਏ JavaScript ਨਾਲ ਆਡੀਓ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸੰਭਾਲਣ ਵੇਲੇ ਸਮੱਸਿਆ ਖਾਸ ਤੌਰ 'ਤੇ ਧਿਆਨ ਦੇਣ ਯੋਗ ਹੁੰਦੀ ਹੈ। ਕਾਲ ਸੈਟਅਪ, ਰਿਮੋਟ ਆਡੀਓ ਸਟ੍ਰੀਮਿੰਗ, ਅਤੇ ਡਿਵਾਈਸ ਅਨੁਮਤੀਆਂ ਦੇ ਸਹੀ ਲਾਗੂ ਹੋਣ ਦੇ ਨਾਲ ਵੀ, ਅਚਾਨਕ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਹੋ ਸਕਦਾ ਹੈ, ਵਿਕਾਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਗੁੰਝਲਦਾਰ ਬਣਾਉਂਦਾ ਹੈ।

ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ .NET MAUI ਅਤੇ Azure ਕਮਿਊਨੀਕੇਸ਼ਨ ਸਰਵਿਸਿਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ 1:1 ਕਾਲਾਂ ਵਿੱਚ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਸਮੱਸਿਆਵਾਂ ਲਈ ਸਮੱਸਿਆ ਨਿਪਟਾਰਾ ਤਕਨੀਕਾਂ ਦੀ ਪੜਚੋਲ ਕਰਾਂਗੇ। ਅਸੀਂ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਐਪ ਵਿੱਚ ਇੱਕ ਨਿਰਵਿਘਨ, ਦੋ-ਪੱਖੀ ਸੰਚਾਰ ਅਨੁਭਵ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਚੋਣ, ਭਾਗੀਦਾਰ ਗਾਹਕੀ, ਅਤੇ ਡਿਵਾਈਸ ਅਨੁਮਤੀਆਂ ਵਿੱਚੋਂ ਲੰਘਾਂਗੇ।

ਹੁਕਮ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
askDevicePermission() ਇਸ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਅਜ਼ੂਰ ਕਮਿਊਨੀਕੇਸ਼ਨ ਸਰਵਿਸਿਜ਼ ਸੰਦਰਭ ਵਿੱਚ ਉਪਭੋਗਤਾ ਤੋਂ ਆਡੀਓ ਅਤੇ ਵੀਡੀਓ ਐਕਸੈਸ ਲਈ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਅਨੁਮਤੀਆਂ ਦੀ ਬੇਨਤੀ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਐਪ ਕਾਲ ਦੇ ਦੌਰਾਨ ਆਡੀਓ ਅਤੇ ਵੀਡੀਓ ਨੂੰ ਕੈਪਚਰ ਅਤੇ ਟ੍ਰਾਂਸਮਿਟ ਕਰ ਸਕਦਾ ਹੈ।
getMediaStream() ਰਿਮੋਟ ਆਡੀਓਸਟ੍ਰੀਮ ਇੰਟਰਫੇਸ ਦਾ ਹਿੱਸਾ, ਇਹ ਕਮਾਂਡ ਰਿਮੋਟ ਆਡੀਓ ਲਈ ਅਸਲ ਮੀਡੀਆ ਸਟ੍ਰੀਮ ਆਬਜੈਕਟ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ। ਕਾਲ ਦੌਰਾਨ ਰਿਮੋਟ ਆਡੀਓ ਸਟ੍ਰੀਮ ਨੂੰ ਸੰਭਾਲਣ ਅਤੇ ਚਲਾਉਣ ਲਈ ਇਹ ਜ਼ਰੂਰੀ ਹੈ।
on('remoteParticipantsUpdated') ਇੱਕ ਇਵੈਂਟ ਹੈਂਡਲਰ ਜੋ ਰਿਮੋਟ ਭਾਗੀਦਾਰਾਂ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਨੂੰ ਟਰੈਕ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਜਦੋਂ ਨਵੇਂ ਭਾਗੀਦਾਰਾਂ ਨੂੰ ਕਾਲ ਤੋਂ ਜੋੜਿਆ ਜਾਂ ਹਟਾਇਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਕਮਾਂਡ 1:1 ਕਾਲ ਦੌਰਾਨ ਰਿਮੋਟ ਉਪਭੋਗਤਾਵਾਂ 'ਤੇ ਰੀਅਲ-ਟਾਈਮ ਅਪਡੇਟਸ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।
startCall() ਭਾਗ ਲੈਣ ਵਾਲਿਆਂ ਵਿਚਕਾਰ 1:1 ਕਾਲ ਸ਼ੁਰੂ ਅਤੇ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ। ਇਹ ਕਮਾਂਡ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਆਡੀਓ ਅਤੇ ਵੀਡੀਓ ਸਟ੍ਰੀਮ ਸਹੀ ਢੰਗ ਨਾਲ ਸ਼ੁਰੂ ਕੀਤੇ ਗਏ ਹਨ ਅਤੇ ਆਡੀਓ ਅਨੁਮਤੀਆਂ ਲਈ ਸਹੀ ਸੰਰਚਨਾ ਲਾਗੂ ਕੀਤੀ ਗਈ ਹੈ।
subscribeToRemoteParticipant() ਇਹ ਫੰਕਸ਼ਨ ਕਿਸੇ ਖਾਸ ਰਿਮੋਟ ਭਾਗੀਦਾਰ ਨਾਲ ਸੰਬੰਧਿਤ ਇਵੈਂਟਾਂ ਦੀ ਗਾਹਕੀ ਲੈਂਦਾ ਹੈ, ਉਹਨਾਂ ਦੀਆਂ ਆਡੀਓ ਅਤੇ ਵੀਡੀਓ ਸਟ੍ਰੀਮਾਂ ਸਮੇਤ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਭਾਗੀਦਾਰ ਦੀ ਸਥਿਤੀ ਵਿੱਚ ਤਬਦੀਲੀਆਂ, ਜਿਵੇਂ ਕਿ ਮਿਊਟ ਜਾਂ ਸਟ੍ਰੀਮ ਉਪਲਬਧਤਾ, ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਭਾਲਿਆ ਗਿਆ ਹੈ।
onAudioStreamsUpdated ਰਿਮੋਟ ਭਾਗੀਦਾਰਾਂ ਨਾਲ ਜੁੜਿਆ ਇੱਕ ਇਵੈਂਟ ਸੁਣਨ ਵਾਲਾ ਜੋ ਉਹਨਾਂ ਦੀਆਂ ਆਡੀਓ ਸਟ੍ਰੀਮਾਂ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਦਾ ਪਤਾ ਲਗਾਉਂਦਾ ਹੈ। ਇਹ ਕਮਾਂਡ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਜੇਕਰ ਰਿਮੋਟ ਭਾਗੀਦਾਰ ਆਡੀਓ ਨੂੰ ਸੰਚਾਰਿਤ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਜਾਂ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਸਥਾਨਕ ਉਪਭੋਗਤਾ ਨੂੰ ਉਸ ਅਨੁਸਾਰ ਅਪਡੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
selectBestMicrophone() ਇਹ ਕਸਟਮ ਫੰਕਸ਼ਨ ਉਪਲਬਧ ਮਾਈਕ੍ਰੋਫੋਨਾਂ ਰਾਹੀਂ ਫਿਲਟਰ ਕਰਦਾ ਹੈ ਅਤੇ ਕਾਲ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਚੁਣਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਕਾਲ ਦੇ ਦੌਰਾਨ ਅਨੁਕੂਲ ਆਡੀਓ ਗੁਣਵੱਤਾ ਲਈ ਸਹੀ ਆਡੀਓ ਇਨਪੁਟ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ।
createCallAgent() ਕਾਲ ਕਰਨ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਸਮੇਤ, ਕਾਲ ਲਾਈਫਸਾਈਕਲ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਪ੍ਰਾਇਮਰੀ ਕਾਲ ਏਜੰਟ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਕਮਾਂਡ Azure ਕਮਿਊਨੀਕੇਸ਼ਨ ਸਰਵਿਸਿਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸੰਚਾਰ ਪ੍ਰਵਾਹ ਨੂੰ ਬਣਾਉਣ ਲਈ ਇੱਕ ਬੁਨਿਆਦੀ ਤੱਤ ਹੈ।
getDeviceManager() ਡਿਵਾਈਸ ਮੈਨੇਜਰ ਉਦਾਹਰਨ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਜੋ ਆਡੀਓ ਅਤੇ ਵੀਡੀਓ ਇਨਪੁਟ ਡਿਵਾਈਸਾਂ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਕਾਲ ਲਈ ਉਚਿਤ ਮਾਈਕ੍ਰੋਫੋਨ ਅਤੇ ਕੈਮਰਾ ਚੁਣਨਾ।

ACS ਅਤੇ .NET MAUI ਵਿੱਚ ਵਨ-ਵੇ ਆਡੀਓ ਮੁੱਦਿਆਂ ਦੇ ਹੱਲ ਨੂੰ ਸਮਝਣਾ

ਉੱਪਰ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਇੱਕ .NET MAUI ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ Azure ਕਮਿਊਨੀਕੇਸ਼ਨ ਸਰਵਿਸਿਜ਼ (ACS) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ 1:1 ਕਾਲਾਂ ਵਿੱਚ ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਿੱਥੇ ਆਡੀਓ ਇੱਕ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ ਪਰ ਦੂਜੇ ਤਰੀਕੇ ਨਾਲ ਨਹੀਂ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਕਾਲਰ ਕਾਲਰ ਨੂੰ ਸੁਣ ਸਕਦਾ ਹੈ, ਪਰ ਕਾਲਰ ਕਾਲੀ ਨੂੰ ਨਹੀਂ ਸੁਣ ਸਕਦਾ। ਹੱਲ ਦੇ ਪਹਿਲੇ ਹਿੱਸੇ ਵਿੱਚ ਸ਼ੁਰੂਆਤ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ ਅਤੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਅਤੇ ਕੈਮਰੇ ਦੋਵਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਉਚਿਤ ਡਿਵਾਈਸ ਅਨੁਮਤੀਆਂ ਨੂੰ ਸਥਾਪਤ ਕਰਨਾ। ਇਹ ਵਰਤ ਕੇ ਕੀਤਾ ਗਿਆ ਹੈ ਫੰਕਸ਼ਨ, ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਮੀਡੀਆ ਸਟ੍ਰੀਮ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਭਾਲਣ ਲਈ ਐਪ ਕੋਲ ਲੋੜੀਂਦੇ ਡਿਵਾਈਸਾਂ ਤੱਕ ਪਹੁੰਚ ਹੈ।

ਸਕ੍ਰਿਪਟ ਦਾ ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਹਿੱਸਾ ਡਿਵਾਈਸ ਚੋਣ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰ ਰਿਹਾ ਹੈ। ਦ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਉਪਲਬਧ ਆਡੀਓ ਇਨਪੁਟ ਡਿਵਾਈਸਾਂ ਰਾਹੀਂ ਫਿਲਟਰ ਕਰਨ ਅਤੇ ਸਭ ਤੋਂ ਢੁਕਵੇਂ ਮਾਈਕ੍ਰੋਫੋਨ ਦੀ ਚੋਣ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਕਾਲ ਸਹੀ ਇਨਪੁਟ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੀ ਹੈ, ਅਜਿਹੇ ਦ੍ਰਿਸ਼ਾਂ ਨੂੰ ਰੋਕਦੀ ਹੈ ਜਿੱਥੇ ਗਲਤ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਚੁਣਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਆਡੀਓ ਸਮੱਸਿਆਵਾਂ ਪੈਦਾ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮਾਈਕ੍ਰੋਫੋਨ ਦੀ ਚੋਣ ਖਾਸ ਤੌਰ 'ਤੇ ਮੋਬਾਈਲ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦੀ ਹੈ, ਜਿੱਥੇ ਅਕਸਰ ਕਈ ਆਡੀਓ ਇਨਪੁਟ ਉਪਕਰਨ ਉਪਲਬਧ ਹੁੰਦੇ ਹਨ।

ਇੱਕ ਵਾਰ ਡਿਵਾਈਸਾਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸ਼ੁਰੂ ਕਰਨ ਅਤੇ ਚੁਣਨ ਤੋਂ ਬਾਅਦ, ਸਕ੍ਰਿਪਟ ਅਸਲ ਕਾਲ ਸੈੱਟਅੱਪ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਅੱਗੇ ਵਧਦੀ ਹੈ। ਦ ਫੰਕਸ਼ਨ 1:1 ਕਾਲ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ, ਅਤੇ ਸਰੋਤਿਆਂ ਨੂੰ ਰਿਮੋਟ ਭਾਗੀਦਾਰਾਂ ਨੂੰ ਜੋੜਨ ਜਾਂ ਹਟਾਉਣ ਵਰਗੀਆਂ ਘਟਨਾਵਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਡੀ ਘਟਨਾ ਖੇਡ ਵਿੱਚ ਆਉਂਦੀ ਹੈ। ਰਿਮੋਟ ਭਾਗੀਦਾਰਾਂ ਦੀ ਸਥਿਤੀ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਦੀ ਗਾਹਕੀ ਲੈ ਕੇ, ਸਕ੍ਰਿਪਟ ਤਬਦੀਲੀਆਂ 'ਤੇ ਪ੍ਰਤੀਕ੍ਰਿਆ ਕਰ ਸਕਦੀ ਹੈ ਜਿਵੇਂ ਕਿ ਕਾਲ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਣ ਵਾਲੇ ਨਵੇਂ ਭਾਗੀਦਾਰ ਜਾਂ ਭਾਗੀਦਾਰਾਂ ਦਾ ਛੱਡਣਾ। ਇਹ ਰਿਮੋਟ ਆਡੀਓ ਸਟ੍ਰੀਮ ਦੀ ਸਥਿਤੀ ਨੂੰ ਵੀ ਟਰੈਕ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾ ਸਕੇ ਕਿ ਆਡੀਓ ਭਾਗੀਦਾਰਾਂ ਵਿਚਕਾਰ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਸਾਰਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।

ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਆਡੀਓ ਸਟ੍ਰੀਮਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਖਾਸ ਤੌਰ 'ਤੇ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਦ ਅਤੇ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਸਥਾਨਕ ਭਾਗੀਦਾਰ ਰਿਮੋਟ ਭਾਗੀਦਾਰਾਂ ਦੀਆਂ ਆਡੀਓ ਸਟ੍ਰੀਮਾਂ ਦੀ ਸਹੀ ਤਰ੍ਹਾਂ ਗਾਹਕੀ ਲੈਂਦਾ ਹੈ। ਜੇਕਰ ਕਿਸੇ ਰਿਮੋਟ ਭਾਗੀਦਾਰ ਦਾ ਆਡੀਓ ਉਪਲਬਧ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਸਕ੍ਰਿਪਟ ਸਟ੍ਰੀਮ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਦੋਵੇਂ ਧਿਰਾਂ ਇੱਕ ਦੂਜੇ ਨੂੰ ਸੁਣ ਸਕਦੀਆਂ ਹਨ। ਸਹੀ ਤਰੁੱਟੀ ਨੂੰ ਸੰਭਾਲਣਾ ਅਤੇ ਸਟ੍ਰੀਮ ਉਪਲਬਧਤਾ ਜਾਂਚਾਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀਆਂ ਹਨ ਕਿ ਜੇਕਰ ਅਸਥਾਈ ਰੁਕਾਵਟਾਂ ਹਨ ਤਾਂ ਆਡੀਓ ਨੂੰ ਰੀਸਟੋਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ, ਸਕ੍ਰਿਪਟ ਕਾਲਾਂ ਦੌਰਾਨ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਦੀ ਸਮੱਸਿਆ ਦਾ ਇੱਕ ਵਿਆਪਕ ਹੱਲ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।

Azure ਸੰਚਾਰ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ .NET MAUI ਵਿੱਚ ਵਨ-ਵੇ ਆਡੀਓ ਨੂੰ ਸੰਭਾਲਣਾ (ਪਹੁੰਚ 1)

ਇਹ ਪਹੁੰਚ ਰੀਅਲ-ਟਾਈਮ ਐਡਜਸਟਮੈਂਟਾਂ ਲਈ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਫਰੰਟ-ਐਂਡ ਵਿੱਚ ਡਿਵਾਈਸ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਸੁਧਾਰ ਕਰਕੇ ਆਡੀਓ ਸਟ੍ਰੀਮ ਮੁੱਦਿਆਂ ਨੂੰ ਸੰਭਾਲਣ 'ਤੇ ਕੇਂਦਰਿਤ ਹੈ।

// Import necessary modules
const { CallClient, VideoStreamRenderer, LocalVideoStream } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential } = require('@azure/communication-common');
let callAgent, deviceManager, call;
// Initialize Call Agent with device permissions
async function initializeCallAgent(token) {
   const credential = new AzureCommunicationTokenCredential(token);
   const callClient = new CallClient();
   callAgent = await callClient.createCallAgent(credential);
   deviceManager = await callClient.getDeviceManager();
   await deviceManager.askDevicePermission({ audio: true });
   console.log('CallAgent initialized and permissions granted.');
}
// Start the call and set up event listeners for remote participants
async function startCall(targetUser) {
   const callOptions = { audioOptions: { muted: false } };
   call = callAgent.startCall([targetUser], callOptions);
   setupCallListeners(call);
   console.log('Call initiated.');
}
// Handle remote participants and audio streams
function setupCallListeners(call) {
   call.remoteParticipants.forEach(remoteParticipant => {
      subscribeToRemoteParticipant(remoteParticipant);
   });
   call.on('remoteParticipantsUpdated', e => {
      e.added.forEach(remoteParticipant => subscribeToRemoteParticipant(remoteParticipant));
      e.removed.forEach(() => console.log('Remote participant removed.'));
   });
}
// Subscribe to audio streams from remote participants
function subscribeToRemoteParticipant(remoteParticipant) {
   remoteParticipant.on('audioStreamsUpdated', e => {
      e.added.forEach(audioStream => handleAudioStream(audioStream));
   });
}
// Process remote audio streams
function handleAudioStream(audioStream) {
   if (audioStream.isAvailable) {
      const remoteAudio = audioStream.getMediaStream();
      // Use the remote audio stream
      console.log('Remote audio stream available.');
   } else {
      console.log('Remote audio stream is not available.');
   }
}
// Test Call Agent initialization
initializeCallAgent('YOUR_TOKEN');

Azure ਸੰਚਾਰ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ .NET MAUI ਵਿੱਚ ਵਨ-ਵੇ ਆਡੀਓ ਨੂੰ ਸੰਭਾਲਣਾ (ਪਹੁੰਚ 2)

ਇਹ ਬੈਕਐਂਡ ਪਹੁੰਚ ਔਡੀਓ ਸਟ੍ਰੀਮਾਂ ਅਤੇ ਡਿਵਾਈਸ ਅਨੁਮਤੀਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਕੇ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਨੂੰ ਨਿਪਟਾਉਣ ਅਤੇ ਹੱਲ ਕਰਨ ਲਈ .NET ਅਤੇ C# ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।

// Import ACS libraries in C#
using Azure.Communication.Calling;
using Azure.Communication; 
private CallClient callClient; 
private CallAgent callAgent;
// Initialize Call Agent in .NET MAUI
public async Task InitializeCallAgent(string token) {
   var credential = new CommunicationTokenCredential(token);
   callClient = new CallClient();
   callAgent = await callClient.CreateCallAgentAsync(credential);
   Console.WriteLine("Call Agent initialized.");
}
// Start the call and add remote participant handlers
public async Task StartCall(string targetUserId) {
   var target = new CommunicationUserIdentifier(targetUserId);
   var callOptions = new StartCallOptions();
   var call = await callAgent.StartCallAsync(new[] { target }, callOptions);
   SetupCallHandlers(call);
}
// Handle remote participants and audio streams
private void SetupCallHandlers(Call call) {
   call.OnRemoteParticipantsUpdated += (sender, args) => {
      foreach (var participant in args.AddedParticipants) {
         SubscribeToAudio(participant);
      }
   };
}
// Subscribe to remote audio streams
private void SubscribeToAudio(RemoteParticipant participant) {
   participant.OnAudioStreamsUpdated += (sender, args) => {
      foreach (var stream in args.AddedAudioStreams) {
         if (stream.IsAvailable) {
            var audioStream = stream.GetMediaStream();
            // Play the audio stream
            Console.WriteLine("Audio stream available.");
         }
      }
   };
}
// Call initialization for testing
await InitializeCallAgent("YOUR_TOKEN");

Azure ਸੰਚਾਰ ਸੇਵਾਵਾਂ ਨਾਲ ਮੋਬਾਈਲ-ਟੂ-ਮੋਬਾਈਲ 1:1 ਕਾਲਾਂ ਵਿੱਚ ਆਡੀਓ ਮੁੱਦਿਆਂ ਨੂੰ ਦੂਰ ਕਰਨਾ

ਮੋਬਾਈਲ-ਟੂ-ਮੋਬਾਈਲ 1:1 ਕਾਲਾਂ ਵਿੱਚ ਆਡੀਓ ਮੁੱਦਿਆਂ ਨਾਲ ਨਜਿੱਠਣ ਵੇਲੇ ਇੱਕ ਮੁੱਖ ਚੁਣੌਤੀ ਅਤੇ ਸਹੀ ਡਿਵਾਈਸ ਅਨੁਕੂਲਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾ ਰਿਹਾ ਹੈ। ਮੋਬਾਈਲ ਡਿਵਾਈਸਾਂ, ਡੈਸਕਟਾਪਾਂ ਦੇ ਉਲਟ, ਅੰਦਰੂਨੀ, ਬਾਹਰੀ ਅਤੇ ਬਲੂਟੁੱਥ ਡਿਵਾਈਸਾਂ ਸਮੇਤ ਵੱਖੋ-ਵੱਖਰੇ ਮਾਈਕ੍ਰੋਫੋਨ ਸੈੱਟਅੱਪ ਹੋ ਸਕਦੇ ਹਨ। ਇਹ ਵਿਭਿੰਨਤਾ ਅਜਿਹੀਆਂ ਸਥਿਤੀਆਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦੀ ਹੈ ਜਿੱਥੇ ਐਪ ਗਲਤ ਮਾਈਕ੍ਰੋਫੋਨ ਦੀ ਚੋਣ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਸਮੱਸਿਆ ਪੈਦਾ ਹੋ ਜਾਂਦੀ ਹੈ ਜਿੱਥੇ ਇੱਕ ਧਿਰ ਦੂਜੀ ਨੂੰ ਸੁਣ ਨਹੀਂ ਸਕਦੀ। ਇਸ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ, ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਵਧੀਆ ਆਡੀਓ ਇਨਪੁਟ ਲਈ ਐਡਜਸਟ ਕਰਨ ਲਈ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਡਿਵਾਈਸ ਗਣਨਾ ਅਤੇ ਡਾਇਨਾਮਿਕ ਮਾਈਕ੍ਰੋਫੋਨ ਚੋਣ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ।

ਇੱਕ ਹੋਰ ਅਕਸਰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਾਰਕ ਪ੍ਰਬੰਧਨ ਹੈ ਪਲੇਟਫਾਰਮਾਂ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ. ਹਾਲਾਂਕਿ ਇਜਾਜ਼ਤਾਂ ਦਿੱਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ ਅਤੇ ਡੈਸਕਟੌਪ ਜਾਂ ਬ੍ਰਾਊਜ਼ਰ-ਆਧਾਰਿਤ ਵਾਤਾਵਰਣਾਂ 'ਤੇ ਚੰਗੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੀਆਂ ਹਨ, ਮੋਬਾਈਲ ਐਪਸ ਕੋਲ ਸਖ਼ਤ ਅਨੁਮਤੀ ਹੈਂਡਲਿੰਗ ਹੁੰਦੀ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨਾਂ ਅਤੇ ਕੈਮਰਿਆਂ ਵਰਗੇ ਹਾਰਡਵੇਅਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ। ਇੱਕ .NET MAUI ਐਪ ਵਿੱਚ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਅਧਿਕਾਰਾਂ ਦੀ ਸਹੀ ਢੰਗ ਨਾਲ ਬੇਨਤੀ ਕੀਤੀ ਗਈ ਹੈ ਅਤੇ ਮੈਨੀਫੈਸਟ ਅਤੇ ਰਨਟਾਈਮ ਦੋਵਾਂ ਵਿੱਚ ਦਿੱਤੀ ਗਈ ਹੈ, ਮਹੱਤਵਪੂਰਨ ਹੈ। ਸਕ੍ਰਿਪਟ ਨੂੰ ਡਿਵਾਈਸ ਦੀਆਂ ਅਨੁਮਤੀ ਸਥਿਤੀਆਂ ਦੀ ਨਿਰੰਤਰ ਨਿਗਰਾਨੀ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ ਕਿ ਗੈਰ-ਪ੍ਰਵਾਨਿਤ ਅਨੁਮਤੀਆਂ ਦੇ ਕਾਰਨ ਸੰਚਾਰ ਵਿੱਚ ਕੋਈ ਰੁਕਾਵਟ ਨਹੀਂ ਆਵੇਗੀ।

ਅੰਤ ਵਿੱਚ, ਪ੍ਰਬੰਧਨ ਆਪਣੇ ਆਪ ਨੂੰ ਜ਼ਰੂਰੀ ਹੈ. ਭਾਵੇਂ ਕਿ ਸਹੀ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਚੁਣਿਆ ਗਿਆ ਹੈ ਅਤੇ ਅਨੁਮਤੀਆਂ ਸਹੀ ਢੰਗ ਨਾਲ ਸੈੱਟ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ, ਕਾਲ ਦੇ ਦੌਰਾਨ ਆਡੀਓ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਸੰਭਾਲਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਆਡੀਓ ਸਟ੍ਰੀਮ ਅਪਡੇਟਾਂ ਦੀ ਗਾਹਕੀ ਲੈਣਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਐਪ ਰਿਮੋਟ ਭਾਗੀਦਾਰ ਦੀ ਆਡੀਓ ਸਥਿਤੀ ਵਿੱਚ ਕਿਸੇ ਵੀ ਬਦਲਾਅ, ਜਿਵੇਂ ਕਿ ਮਿਊਟ ਜਾਂ ਆਡੀਓ ਡਿਵਾਈਸ ਸਵਿੱਚਾਂ 'ਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰਦੀ ਹੈ। ਇਹ ਗਾਹਕੀ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਆਡੀਓ ਵਿੱਚ ਕਿਸੇ ਵੀ ਅਸਥਾਈ ਰੁਕਾਵਟ ਨੂੰ ਜਲਦੀ ਹੱਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਇੱਕ ਕਾਲ ਦੇ ਦੌਰਾਨ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਮੁੱਦਿਆਂ ਨੂੰ ਜਾਰੀ ਰਹਿਣ ਤੋਂ ਰੋਕਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।

  1. ਮੋਬਾਈਲ-ਟੂ-ਮੋਬਾਈਲ 1:1 ਕਾਲਾਂ ਵਿੱਚ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਦਾ ਕੀ ਕਾਰਨ ਹੈ?
  2. ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਉਦੋਂ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਐਪਲੀਕੇਸ਼ਨ ਗਲਤ ਆਡੀਓ ਇਨਪੁਟ ਡਿਵਾਈਸ ਦੀ ਚੋਣ ਕਰਦੀ ਹੈ ਜਾਂ ਜੇਕਰ ਗਲਤ ਮਾਈਕ੍ਰੋਫੋਨ ਅਨੁਮਤੀਆਂ ਹਨ। ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸਹੀ ਮਾਈਕ੍ਰੋਫੋਨ ਦੀ ਚੋਣ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।
  3. ਮੈਂ ਇਹ ਕਿਵੇਂ ਯਕੀਨੀ ਬਣਾ ਸਕਦਾ ਹਾਂ ਕਿ ਸਹੀ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਚੁਣਿਆ ਗਿਆ ਹੈ?
  4. ਦੁਆਰਾ ਗਤੀਸ਼ੀਲ ਮਾਈਕ੍ਰੋਫੋਨ ਚੋਣ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਐਪ ਨੂੰ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਘੱਟ ਕਰਦੇ ਹੋਏ, ਸਭ ਤੋਂ ਵਧੀਆ ਉਪਲਬਧ ਔਡੀਓ ਇਨਪੁਟ ਚੁਣਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
  5. ਇਜਾਜ਼ਤ ਦੇਣ ਦੇ ਬਾਵਜੂਦ ਕੋਈ ਆਡੀਓ ਕਿਉਂ ਨਹੀਂ ਹੈ?
  6. ਇਹ ਪਲੇਟਫਾਰਮ-ਵਿਸ਼ੇਸ਼ ਇਜਾਜ਼ਤ ਹੈਂਡਲਿੰਗ ਦੇ ਕਾਰਨ ਹੋ ਸਕਦਾ ਹੈ। ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਐਪ ਨੂੰ ਮੋਬਾਈਲ ਡੀਵਾਈਸਾਂ 'ਤੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਸਪਸ਼ਟ ਇਜਾਜ਼ਤ ਹੈ।
  7. ਮੈਂ ਰਿਮੋਟ ਭਾਗੀਦਾਰ ਆਡੀਓ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਾਂ?
  8. ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ ਅਤੇ ਸੁਣੋ ਰਿਮੋਟ ਆਡੀਓ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸੰਭਾਲਣ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਕਾਲ ਦਾ ਆਡੀਓ ਦੋਵੇਂ ਤਰੀਕਿਆਂ ਨਾਲ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ।
  9. ਕੀ ਇਹ ਮੁੱਦਾ ਸਾਰੇ ਪਲੇਟਫਾਰਮਾਂ ਵਿੱਚ ਆਮ ਹੈ?
  10. ਆਡੀਓ ਇਨਪੁਟ ਡਿਵਾਈਸਾਂ ਵਿੱਚ ਪਰਿਵਰਤਨਸ਼ੀਲਤਾ ਅਤੇ ਮੋਬਾਈਲ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ 'ਤੇ ਵਧੇਰੇ ਪ੍ਰਤਿਬੰਧਿਤ ਅਨੁਮਤੀ ਹੈਂਡਲਿੰਗ ਦੇ ਕਾਰਨ ਡੈਸਕਟਾਪਾਂ ਦੇ ਮੁਕਾਬਲੇ ਮੋਬਾਈਲ ਪਲੇਟਫਾਰਮਾਂ 'ਤੇ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਮੁੱਦੇ ਵਧੇਰੇ ਆਮ ਹਨ।

ਮੋਬਾਈਲ-ਟੂ-ਮੋਬਾਈਲ ਕਾਲਾਂ ਵਿੱਚ ਇੱਕ ਤਰਫਾ ਆਡੀਓ ਸਮੱਸਿਆਵਾਂ ਚੁਣੌਤੀਪੂਰਨ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਪਰ ਸਹੀ ਡਿਵਾਈਸ ਅਤੇ ਅਨੁਮਤੀ ਪ੍ਰਬੰਧਨ ਨਾਲ, ਉਹਨਾਂ ਨੂੰ ਹੱਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਸਹੀ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਚੁਣਿਆ ਗਿਆ ਹੈ, ਅਤੇ ਅਨੁਮਤੀਆਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਭਾਲਿਆ ਗਿਆ ਹੈ, ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਦੀ ਕੁੰਜੀ ਹੈ।

ਇਸ ਤੋਂ ਇਲਾਵਾ, ਰਿਮੋਟ ਆਡੀਓ ਸਟ੍ਰੀਮ ਦੀ ਗਾਹਕੀ ਲੈਣਾ ਅਤੇ ਸਟ੍ਰੀਮ ਉਪਲਬਧਤਾ ਤਬਦੀਲੀਆਂ ਵਰਗੇ ਇਵੈਂਟਾਂ ਨੂੰ ਸੰਭਾਲਣਾ ਨਿਰਵਿਘਨ ਸੰਚਾਰ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ। ਇਹਨਾਂ ਰਣਨੀਤੀਆਂ ਦਾ ਪਾਲਣ ਕਰਨਾ ਅਜ਼ੂਰ ਸੰਚਾਰ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ 1:1 ਕਾਲਾਂ ਦੀ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਵਧਾਏਗਾ, ਇਕਸਾਰ ਦੋ-ਪੱਖੀ ਆਡੀਓ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।

  1. ਇਹ ਲੇਖ Azure ਸੰਚਾਰ ਸੇਵਾਵਾਂ ਲਈ ਅਧਿਕਾਰਤ ਦਸਤਾਵੇਜ਼ਾਂ ਅਤੇ ਸਮੱਸਿਆ ਨਿਪਟਾਰਾ ਤਕਨੀਕਾਂ 'ਤੇ ਆਧਾਰਿਤ ਹੈ। 'ਤੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ Azure ਕਮਿਊਨੀਕੇਸ਼ਨ ਸਰਵਿਸਿਜ਼ ਦਸਤਾਵੇਜ਼ .
  2. .NET MAUI ਵਿੱਚ ਹੈਂਡਲਿੰਗ ਅਨੁਮਤੀਆਂ ਅਤੇ ਡਿਵਾਈਸ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਸਮਝ ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ ਹੈ .NET MAUI ਦਸਤਾਵੇਜ਼ .
  3. JavaScript ਵਿੱਚ ਆਡੀਓ ਅਤੇ ਵੀਡੀਓ ਸਟ੍ਰੀਮਾਂ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸਾਂ ਨੂੰ ਇੱਥੇ ਹੋਰ ਖੋਜਿਆ ਜਾ ਸਕਦਾ ਹੈ MDN ਵੈੱਬ ਡੌਕਸ - ਮੀਡੀਆਸਟ੍ਰੀਮ API .
  4. ਮਾਈਕ੍ਰੋਫੋਨ ਸਮੱਸਿਆਵਾਂ ਦੇ ਨਿਪਟਾਰੇ ਅਤੇ ਡਾਇਨਾਮਿਕ ਡਿਵਾਈਸ ਦੀ ਚੋਣ ਬਾਰੇ ਮਾਰਗਦਰਸ਼ਨ ਦਾ ਹਵਾਲਾ ਦਿੱਤਾ ਗਿਆ ਹੈ @azure/communication-ਕਾਲਿੰਗ ਕਾਲ ਕਲਾਇੰਟ ਦਸਤਾਵੇਜ਼ .