-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Airplay streaming issue on ios #6482
Comments
Adding Removing If you'd like to use AirPlay with ManagedMediaMediaSource disabled, consider contributing a PR that makes the buffer-controller's |
hi @robwalch , sorry I made a mistake when I was reporting the issue. However, even with adding I published two code samples without Using native hls: And hls.js: but I still get same results. I cannot stream it with hlsjs and can with native hls. I'm testing streaming from iPhone to Macbook M1 Pro I appreciate your fast responses |
I was testing Desktop Safari to LG C2. I'll take another look on iPhone. |
This looks like an iOS issue. Please file a bug report with Feedback Assistant. Make sure to update your page so that you are only setting if (useHls) {
// source children will be used when ManagedMediaSource is used
// video.src should not be set prior to this, otherwise it must be unloaded
// <hls.js setup with fallback source>
if (video.webkitCurrentPlaybackTargetIsWireless) {
hls.stopLoad();
}
video.addEventListener('webkitcurrentplaybacktargetiswirelesschanged', function (event) {
if (video.webkitCurrentPlaybackTargetIsWireless) {
hls.stopLoad();
} else {
hls.startLoad();
}
});
} else {
video.src = urlPlaylistUrl;
} Some other points:
I also experienced difficulty initiating a successful AirPlay session from iOS when compared to the same attempt from desktop Safari which worked every time. At first the receiver did not play anything, after a couple reconnects (to WebOS, then to AppleTV) it began to show the music last played from my phone, and then (back to WebOS) finally I got audio-only playback for the AV asset. Only after enabling Share the feedback ID here so that I can help route the bug report appropriately. Thanks for working with me to identify and resolve this issue. |
stream provided give a 404 error
|
Loading other URL, the If you want airplay to work, you need an alternative source that is AirPlay compatible. |
Hey @robwalch , I'll report the issue and share the feedback ID here |
@robwalch can you please confirm if this is proper example of sample code
|
This seems wrong to me and was needed before there was any support of AirPlay when using MSE prior iOS 17. There is nothing to unload/stop load. You don't want to set the source alternative after the fact once you receive the message. |
We don't want the sender loading files and attempting to append them to a MediaSource while the session is active. It's an optimization missing from prior examples. If it's not required with ManagedMediaSource, then it can be removed. |
@robwalch feedback id: FB13939256 |
I see that you have Thanks |
I tried with false option but it didn't have an impact |
According to the hls.js author, this is the way to do it. video-dev/hls.js#6482 (comment)
Apparently Chrome for Android has native support for HLS. However, for some reason it does not like our stream. After hours of debugging, best I can tell is that there is an HTTP header somewhere it does not like. The workaround is to always use hls.js if it is supported by the browser. (Safari on iOS does not have support for Media Source Extensions (MSE). Older iOS does not support Managed Media Source (MMS). So older iOS cannot use hls.js.) The downside to this is that we seem to break AirPlay on all but (presumably) older iOS due to what seems to be an iOS bug with MMS: video-dev/hls.js#6482 (comment)
What version of Hls.js are you using?
v1.5.11
What browser (including version) are you using?
Safari 17.5.1
What OS (including version) are you using?
IOS
Test stream
https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fvz-b1d0f3b4-139.flufflecdn.net%2Fb13f6bba-728f-4fd3-88b4-ad8eb276976b%2Fplaylist.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==
Configuration
Additional player setup steps
No response
Checklist
Steps to reproduce
Expected behaviour
Airplay should be streamed to selected destination
What actually happened?
The Airplay is not streamed with a given configuration.
However, I can stream if I enable autoplay:
or if I use native hls:
Console output
Chrome media internals output
No response
The text was updated successfully, but these errors were encountered: