К обсуждениям

Web Audio выбирает не тот track и играет после `ended` в Safari TP 251

Редакция VOne Технологии

MediaStreamAudioSourceNode маршрутизирует не первый track по code-unit order и продолжает отдавать samples после завершения выбранного track. Разбор Safari TP 251: самостоятельный диагностический артефакт, прямые источники, опровержимый контроль, обратимый canary, stop-line и privacy-safe handoff.

Ответ на запрос: Web Audio выбирает не тот track и играет после `ended` в Safari TP 251

Здесь важна воспроизводимость, а не яркость сбоя. Единственная пользовательская боль: MediaStreamAudioSourceNode маршрутизирует не первый track по code-unit order и продолжает отдавать samples после завершения выбранного track. Нормализованный intent этой страницы — «как проверить выбор track MediaStreamAudioSourceNode и тишину после ended в Safari Technology Preview 251». Критерий, который можно опровергнуть: выбран минимальный id по code-unit ordering, а после ended анализатор фиксирует тишину в пределах допуска. Возможная ложная причина сформулирована отдельно: порядок вставки или analyser resolution, ошибочно принятые за спецификационный выбор track. До запуска выбирается такая развилка: неверная частота/энергия после ended — reproduced; single-track неверен — analyser-invalid; нет synthetic track API — blocked. Если нужная поверхность отсутствует, ставится `unsupported`; если нет обязательного наблюдения, ставится `unknown`; оба статуса отличаются от `not-reproduced`. Проверка выполняется на изолированном fixture, поэтому не затрагивает production, VPN, маршрутизацию, рабочий профиль, реальные аккаунты или личные данные. Вывод нельзя переносить на stable Safari, другой браузер либо чужой сайт без отдельного опыта.

Доказательная граница 318706@main@main

Свежесть подтверждается release item, а механизм — commit. WebKit датирует Safari Technology Preview 251 26 августа 2026 года и перечисляет изменение: исправлены два аспекта: выбор аудиотрека по сортировке id и вывод тишины после окончания захваченного track. Связанная primary-страница 318706@main@main была открыта 29 августа: identifier совпадает, commit title описывает тот же узкий механизм. Для темы «MediaStreamAudioSourceNode маршрутизирует не первый track по code-unit order и продолжает отдавать samples после завершения выбранного track» этого достаточно только чтобы подтвердить наличие change item и его инженерную границу. Release Notes и 318706@main@main не измеряют количество затронутых пользователей, не доказывают поисковый спрос, не сообщают результат для произвольного приложения и не гарантируют попадание в стабильную версию. Google News, Reddit и Apple search results были лидами к перепроверке даты; их заголовки и комментарии не использованы как техническое evidence.

Артефакт опыта: маршрутный реестр `track id/order/tone → selected fingerprint → energy after ended`

Пустой бланк создаётся раньше первого прогона. Здесь это маршрутный реестр `track id/order/tone → selected fingerprint → energy after ended`. Локальный стенд: два synthetic MediaStreamTrack из осцилляторов с разными частотами; микрофон, камера и пользовательская речь не используются. Схема записи специфична для задачи: `trackIdHash` — наблюдаемое значение или пусто с причиной; `insertionOrder` — наблюдаемое значение или пусто с причиной; `sortedOrder` — наблюдаемое значение или пусто с причиной; `toneHz` — наблюдаемое значение или пусто с причиной; `selectedHz` — наблюдаемое значение или пусто с причиной; `endedAt` — наблюдаемое значение или пусто с причиной; `postEndRms` — наблюдаемое значение или пусто с причиной; `nodeConnected` — наблюдаемое значение или пусто с причиной. В строке 318706@main добавляются `expected`, `observed`, build, timestamp и единица, если она применима. Формула или источник каждого вычисленного значения указывается рядом; пропуск не превращается в ноль. IP, cookie, Authorization, токены, device labels, внешние URL, пути, сырые media и содержимое файлов исключаются до записи. Test-only идентификаторы разрешены в виде краткого hash внутри запуска и удаляются после cleanup. Именно набор «trackIdHash, insertionOrder, sortedOrder, toneHz, selectedHz, endedAt, postEndRms, nodeConnected» делает материал самостоятельным: он отвечает на боль «MediaStreamAudioSourceNode маршрутизирует не первый track по code-unit order и продолжает отдавать samples после завершения выбранного track», а не подставляет другое название в универсальный браузерный чек-лист.

Control и решение для 318706@main

Независимый control отделяет симптом от причины. Для 318706@main используется: поток с обратным insertion order при тех же ids и отдельный single-track control. Он получает тот же build, порядок событий и поля «trackIdHash, insertionOrder, sortedOrder, toneHz, selectedHz, endedAt, postEndRms, nodeConnected». Проверяемый confounder — порядок вставки или analyser resolution, ошибочно принятые за спецификационный выбор track. Если основная ветка отклоняется, а control остаётся спокойным, применяется развилка «неверная частота/энергия после ended — reproduced; single-track неверен — analyser-invalid; нет synthetic track API — blocked». Если отклоняется control, итог `invalid`; если control технически недоступен, итог `environment-blocked`; если значения неполны, итог `inconclusive`. Нельзя объявлять дефект только потому, что фраза «MediaStreamAudioSourceNode маршрутизирует не первый track по code-unit order и продолжает отдавать samples после завершения выбранного track» похожа на сообщение форума. Сначала должны совпасть fixture, измеряемая поверхность и ожидаемый ответ «выбран минимальный id по code-unit ordering, а после ended анализатор фиксирует тишину в пределах допуска». Этот порядок запрещает объяснение задним числом и сохраняет различие между соседними API, layout и media change items.

Обратимый canary и критерий PASS

Canary меняет только заранее выбранное условие. Для этой статьи действие сформулировано так: создать двухтрековый stream, завершить выбранный synthetic track, затем остановить и удалить оба. Сначала заполняется baseline по полям «trackIdHash, insertionOrder, sortedOrder, toneHz, selectedHz, endedAt, postEndRms, nodeConnected», затем выполняется только указанная операция. После заранее выбранного settle-event те же поля читаются повторно без округления и подмены отсутствующих значений. PASS допустим лишь при условии: выбран минимальный id по code-unit ordering, а после ended анализатор фиксирует тишину в пределах допуска. Затем действие полностью откатывается, и baseline для артефакта «маршрутный реестр `track id/order/tone → selected fingerprint → energy after ended`» должен восстановиться. Несовпадение rollback переводит запись в `invalid`, даже если основная ветка выглядела убедительно. Canary не расширяют на production, пользовательский media, рабочие разрешения, продолжительный стресс-тест или внешние страницы. Один run сохраняет свою строку; повтор не перезаписывает редкое отклонение.

Stop-line и privacy-safe handoff

Stop-line имеет приоритет над удачным наблюдением. Немедленная остановка: использован getUserMedia, id попал в отчёт открытым текстом или треки не остановлены в cleanup. Для повторения оставляют build, hash fixture, поля «trackIdHash, insertionOrder, sortedOrder, toneHz, selectedHz, endedAt, postEndRms, nodeConnected», expected/observed, control status, cleanup status и primary link 318706@main@main. Статус выбирается из `reproduced`, `not-reproduced`, `unsupported`, `environment-blocked`, `invalid`, `inconclusive`, `unknown`; отдельной строкой приводится развилка «неверная частота/энергия после ended — reproduced; single-track неверен — analyser-invalid; нет synthetic track API — blocked». Перед передачей удаляются пути, имена, адреса, labels и любые значения, способные идентифицировать пользователя либо инфраструктуру. Даже успешный handoff подтверждает только условие «выбран минимальный id по code-unit ordering, а после ended анализатор фиксирует тишину в пределах допуска» в этом fixture. Он не обещает автоматическое исправление, стабильную поддержку, индексацию, позицию, цитирование ИИ или доказанный спрос.

Материал подготовлен редакцией VOne с помощью ИИ; дата Release 251, primary 318706@main, техническая граница, самостоятельный артефакт, control, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.