Page MenuHomePhabricator

Audio on Star Spangled Banner doesn't play
Closed, ResolvedPublicSpike

Description

List of steps to reproduce:

  • Open current version (6.8.2) of the app on current iOS (15.2)
  • Search for Star-spangled banner
  • Open page and tap Quick Facts: Music...
  • Scroll to the audio play bar
  • Press play

What happens?:
Nothing.

What should have happened instead?:
A music sample of the star-spangled banner should play.

Event Timeline

LGoto triaged this task as Medium priority.Jan 24 2022, 7:35 PM
LGoto moved this task from Needs Triage to Bug Backlog on the Wikipedia-iOS-App-Backlog board.
Restricted Application changed the subtype of this task from "Bug Report" to "Spike". · View Herald TranscriptMay 10 2022, 6:24 PM
Dmantena subscribed.

Here're notes from my investigation. Embedded audio (that is, directly HTML embedded <audio> clips on an article) does not appear to be working in the app. You can tap through to the file to play a clip in a non-native view, but not directly within an article. This problem appears to have started with iOS 15. iOS 14 appears unaffected.

I used some previously user reported articles that contain embedded audio to test with:

  • The Star-Spangled Banner
  • United States
  • Music

Here's some of what I tried:

  • ❌ Tried 6.9.0 with current PCS (locally) on iOS 14.5 and 15.5, only iOS 14 played audio
  • ❌ Tried 6.9.0 with older PCS revisions (locally) on iOS 14.5 and 15.5, only iOS 14 played audio
  • ❌ Tried 6.7.2 with current and older PCS, only iOS 14 played
  • 🤔 Made a sample app with just the mobile HTML of an article loaded into a web view (e.g. webView.load(URLRequest(url: URL(string: "https://en.wikipedia.org/api/rest_v1/page/mobile-html/The_Star-Spangled_Banner")!))), iOS 14 and iOS 15 played audio fine

Some additional information:

  • When I proxied the traffic to investigate what network traffic occurred when an audio clip is tapped to play, on occasion I would notice that the transcoded MP3 sometimes would fail to load with an HTTP 416 Range Not Satisfiable error code on iOS 15
  • iOS 14 would spit out this console message stating a missing client entitlement, but would still play audio.
[ProcessSuspension] 0x124ad2490 - ProcessAssertion: Failed to acquire RBS MediaPlayback assertion 'WebKit Media Playback' for process with PID 12789, error: Error Domain=RBSAssertionErrorDomain Code=3 "Required client entitlement is missing" UserInfo={RBSAssertionAttribute=<RBSDomainAttribute| domain:"com.apple.webkit" name:"MediaPlayback" sourceEnvironment:"(null)">, NSLocalizedFailureReason=Required client entitlement is missing}

My best guess is a. something is malformed with the embedded audio URLs, b. our local script handling is mangling something, or c. behavior in WebKit in iOS 15 related to embedded media has changed (maybe parsing/loading is handled more strictly?).

ABorbaWMF subscribed.

Appears to be fixed on 6.9.3 (1947)

Tsevener subscribed.
JMinor claimed this task.