Post

Replies

Boosts

Views

Activity

FairPlay multi key encryption in Safari on macOS
Is FairPlay multi key encryption supposed to work in Safari 26 on macOS? It stopped working for us some time last year. The very same content works on iOS in AVPlayer and single key encryption works fine. On macOS, the multi key content sometimes plays, sometimes not. It is as if there was some race condition on how fast the KSM responds with content keys. Very often, I can see just one KSM request in network console (instead of multiple for each video profile and audio) and the playback fails with Video error: code=3 msg=Media failed to decode. We've filed a Code Level Support ticket (19025185) and a bug report (FB22353469), but haven't really heard back. Just that engineering is actively investigating this issue, and was able to reproduce it.
1
1
331
Jun ’26
Save credentials prompt not shown when login and password aren't the last fields in a form
The save credentials prompt is not shown after clicking the submit button in the following setup. The prompt is shown if I move the email field before the login field. Is it really required to have login and password fields at the end of the registration form? Or is there some API that can trigger the prompt? struct FakeRegistrationView: View { @State private var login = "" @State private var password = "" @State private var repeatPassword = "" @State private var email = "" var navigateBack: () -> Void var body: some View { VStack(spacing: 16) { TextField("Login", text: $login) .textFieldStyle(.roundedBorder) .textContentType(.username) .disableAutocorrection(true) .autocapitalization(.none) .frame(maxWidth: 300) SecureField("Password", text: $password) .textFieldStyle(.roundedBorder) .textContentType(.newPassword) .disableAutocorrection(true) .autocapitalization(.none) .frame(maxWidth: 300) SecureField("Repeat password", text: $repeatPassword) .textFieldStyle(.roundedBorder) .textContentType(.newPassword) .disableAutocorrection(true) .autocapitalization(.none) .frame(maxWidth: 300) TextField("Email", text: $email) .textFieldStyle(.roundedBorder) .textContentType(.emailAddress) .disableAutocorrection(true) .autocapitalization(.none) .frame(maxWidth: 300) Button { Task { try? await Task.sleep(for: .seconds(2)) navigateBack() } } label: { Text("Submit") } .buttonStyle(.borderedProminent) } } }
1
0
263
Mar ’25
Get channels count for an audio stream in AVPlayer
In an m3u8 manifest, audio EXT-X-MEDIA tags usually contain CHANNELS tag containing the audio channels count like so: #EXT-X-MEDIA:TYPE=AUDIO,URI="audio_clear_eng_stereo.m3u8",GROUP-ID="default-audio-group",LANGUAGE="en",NAME="stream_5",AUTOSELECT=YES,CHANNELS="2" Is it possible to get this info from AVPlayer, AVMediaSelectionOption or some related API?
2
0
713
Dec ’24
animation(_:,value:) doesn't work inside TabView with tabViewStyle(.page)
View.animation(_:,value:) doesn't seem to work inside TabView with tabViewStyle(.page). There is no animation when the value changes. The same code works as expected without TabView. I was able to reproduce on iOS 17.5 and iOS 17.2. iOS 16.4 is working correctly. STEPS TO REPRODUCE: Run the attached code Wait for yellow to load Wait for 2 seconds for green to load (there is no animation even though there should be) import SwiftUI struct ContentView: View { @State private var loaded = false var body: some View { TabView { ZStack { if loaded { Color.green } else { Color.yellow } } .animation(.default, value: loaded) .task { do { try await Task.sleep(for: .seconds(2)) loaded = true } catch { // no-op } } } .tabViewStyle(.page) } } Has anyone else seen this behavior?
2
1
584
Aug ’24
FairPlay multi key encryption in Safari on macOS
Is FairPlay multi key encryption supposed to work in Safari 26 on macOS? It stopped working for us some time last year. The very same content works on iOS in AVPlayer and single key encryption works fine. On macOS, the multi key content sometimes plays, sometimes not. It is as if there was some race condition on how fast the KSM responds with content keys. Very often, I can see just one KSM request in network console (instead of multiple for each video profile and audio) and the playback fails with Video error: code=3 msg=Media failed to decode. We've filed a Code Level Support ticket (19025185) and a bug report (FB22353469), but haven't really heard back. Just that engineering is actively investigating this issue, and was able to reproduce it.
Replies
1
Boosts
1
Views
331
Activity
Jun ’26
Save credentials prompt not shown when login and password aren't the last fields in a form
The save credentials prompt is not shown after clicking the submit button in the following setup. The prompt is shown if I move the email field before the login field. Is it really required to have login and password fields at the end of the registration form? Or is there some API that can trigger the prompt? struct FakeRegistrationView: View { @State private var login = "" @State private var password = "" @State private var repeatPassword = "" @State private var email = "" var navigateBack: () -> Void var body: some View { VStack(spacing: 16) { TextField("Login", text: $login) .textFieldStyle(.roundedBorder) .textContentType(.username) .disableAutocorrection(true) .autocapitalization(.none) .frame(maxWidth: 300) SecureField("Password", text: $password) .textFieldStyle(.roundedBorder) .textContentType(.newPassword) .disableAutocorrection(true) .autocapitalization(.none) .frame(maxWidth: 300) SecureField("Repeat password", text: $repeatPassword) .textFieldStyle(.roundedBorder) .textContentType(.newPassword) .disableAutocorrection(true) .autocapitalization(.none) .frame(maxWidth: 300) TextField("Email", text: $email) .textFieldStyle(.roundedBorder) .textContentType(.emailAddress) .disableAutocorrection(true) .autocapitalization(.none) .frame(maxWidth: 300) Button { Task { try? await Task.sleep(for: .seconds(2)) navigateBack() } } label: { Text("Submit") } .buttonStyle(.borderedProminent) } } }
Replies
1
Boosts
0
Views
263
Activity
Mar ’25
Get channels count for an audio stream in AVPlayer
In an m3u8 manifest, audio EXT-X-MEDIA tags usually contain CHANNELS tag containing the audio channels count like so: #EXT-X-MEDIA:TYPE=AUDIO,URI="audio_clear_eng_stereo.m3u8",GROUP-ID="default-audio-group",LANGUAGE="en",NAME="stream_5",AUTOSELECT=YES,CHANNELS="2" Is it possible to get this info from AVPlayer, AVMediaSelectionOption or some related API?
Replies
2
Boosts
0
Views
713
Activity
Dec ’24
animation(_:,value:) doesn't work inside TabView with tabViewStyle(.page)
View.animation(_:,value:) doesn't seem to work inside TabView with tabViewStyle(.page). There is no animation when the value changes. The same code works as expected without TabView. I was able to reproduce on iOS 17.5 and iOS 17.2. iOS 16.4 is working correctly. STEPS TO REPRODUCE: Run the attached code Wait for yellow to load Wait for 2 seconds for green to load (there is no animation even though there should be) import SwiftUI struct ContentView: View { @State private var loaded = false var body: some View { TabView { ZStack { if loaded { Color.green } else { Color.yellow } } .animation(.default, value: loaded) .task { do { try await Task.sleep(for: .seconds(2)) loaded = true } catch { // no-op } } } .tabViewStyle(.page) } } Has anyone else seen this behavior?
Replies
2
Boosts
1
Views
584
Activity
Aug ’24