Skip to content

Fix Remote Access speech when follower has no connected audio render endpoints#18575

Merged
SaschaCowley merged 3 commits into
masterfrom
remoteSpeechNoAudioEndpoints
Jul 31, 2025
Merged

Fix Remote Access speech when follower has no connected audio render endpoints#18575
SaschaCowley merged 3 commits into
masterfrom
remoteSpeechNoAudioEndpoints

Conversation

@SaschaCowley

Copy link
Copy Markdown
Member

Link to issue number:

Fixes #18544

Summary of the issue:

When using NVDA Remote Access, if the controlled computer has no audio output devices enabled, speech is not sent to the controlling computer.

Description of user facing changes:

Speech is now sent, even if the controlled computer has no audio output devices enabled.

Description of developer facing changes:

None

Description of development approach:

The issue was caused by nvwave.playWaveFile raising an exception if no render endpoints were available.
To mitigate this, _remoteClient.cues._playCue now handles exceptions raised by playWaveFile.

Testing strategy:

Configured the source copy of NVDA to connect as follower automatically on startup. Disabled all audio output devices and launched NVDA from source. Connected on a second device as leader and checked that speech was received.

Known issues with pull request:

The underlying problem has not been resolved. As this involves a change in API behaviour, I will implement it in a separate PR.

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@coderabbitai summary

Copilot AI review requested due to automatic review settings July 29, 2025 04:12
@SaschaCowley SaschaCowley requested a review from a team as a code owner July 29, 2025 04:12
@SaschaCowley SaschaCowley requested a review from seanbudd July 29, 2025 04:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes a bug where NVDA Remote Access speech was not working when the controlled computer had no audio output devices enabled. The issue was caused by nvwave.playWaveFile raising an exception when no render endpoints were available.

  • Added exception handling in _remoteClient.cues._playCue to handle failures when playing audio cues
  • Added debug logging for failed audio playback attempts
  • Updated changelog to document the fix

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
user_docs/en/changes.md Added changelog entry documenting the bug fix
source/_remoteClient/cues.py Added exception handling and logging for audio playback failures

Comment thread source/_remoteClient/cues.py
@SaschaCowley SaschaCowley changed the title Fix sRemote Access speech when follower has no connected render endpoints Fix Remote Access speech when follower has no connected audio render endpoints Jul 29, 2025
# Conflicts:
#	user_docs/en/changes.md
@SaschaCowley SaschaCowley enabled auto-merge (squash) July 31, 2025 01:14
@SaschaCowley SaschaCowley merged commit e908d2c into master Jul 31, 2025
37 of 38 checks passed
@SaschaCowley SaschaCowley deleted the remoteSpeechNoAudioEndpoints branch July 31, 2025 02:15
@SaschaCowley SaschaCowley added this to the 2025.3 milestone Aug 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

No speech feedback from remote computer when all audio devices are disabled, unlike in NVDA Remote add-on

3 participants