Audio and microphone

Two audio behaviours of a Pixel Streaming app surprise people: every stream starts muted, and turning on the microphone can stop a stream from starting at all. Both come from the browser, not from your app.

Why the stream starts muted

Chrome, Edge, Firefox and Safari all refuse to play sound on a page the visitor has not interacted with. Video may start on its own; audio may not. Pixel Streaming runs in a browser, so it lives under that rule like any other page.

It fixes itself on the first click

Any genuine interaction unmutes it — the play button, a click inside the streaming area, or a control in your own interface. Nothing to configure, and no change to your Unreal project. This is also why the play button exists rather than being something the platform could remove.

When the microphone stops the stream

If Use Browser side Microphone is on, on the Microphone tab of your app configuration, the browser asks the viewer for permission when the page loads. Until that is answered, there is no microphone to attach — and the session waits.

A stream that failed to start
What the viewer sees: the stream hangs during start-up, then fails after a few minutes with “video stream failed to start after 3m 10s.”

Four situations produce that, and only the first is a deliberate choice:

The browser microphone permission prompt
The prompt that has to be answered.

Fixing it in the browser

  1. On the streaming page, click the lock or settings icon beside the address bar.

  2. Open Site settings.

    Opening site settings from the address bar
  3. Set Microphone to Allow. A Block here is what suppresses the prompt in the first place.

    Allowing microphone access for the site
  4. Reload the stream.

If your app does not use the microphone, turn the setting off

An app with the microphone enabled that never listens to it gains nothing and inherits a whole class of start-up failure — one that depends on the viewer's browser settings, which you cannot see or control. Leave it off unless something in your app actually reads audio input.

Last updated