Skip to content

Add a minimal tvOS example app - #4

Open
kristofferR wants to merge 3 commits into
joaoalvess:mainfrom
kristofferR:feat/tvos-example-app
Open

kristofferR wants to merge 3 commits into
joaoalvess:mainfrom
kristofferR:feat/tvos-example-app

Conversation

@kristofferR

Copy link
Copy Markdown

Hi! Lumen doesn't have an app that runs on an Apple TV, which makes the remux engine hard to try on real hardware. This adds a minimal tvOS example in Examples/LumenPlayer, so anyone can install Lumen on their Apple TV and play a URL through it.

  • An XcodeGen project and one SwiftUI file. It plays the URL from its launch environment through the unchanged KSVideoPlayerView, with ProAVPlayer first and KSMEPlayer behind it.
  • LUMEN_START, LUMEN_TITLE and LUMEN_LOG are optional. Without a URL it shows a black screen and prints a hint to the console.
  • It adds nothing to Lumen's own interface.
  • No signing is committed. build-and-install.sh takes the team and bundle identifier from LUMEN_DEVELOPMENT_TEAM and LUMEN_BUNDLE_ID, and the project only carries a com.example.LumenPlayer placeholder.
  • Generated files are ignored: the Xcode project, Info.plist, DerivedData and logs.

I built it for an Apple TV 4K (2nd generation) on tvOS 27.2 and used it to test #3 (TrueHD Atmos and DTS:X) on the device. It's independent of that PR and works with Lumen as it is today. The README mentions APAC because of that PR. If you'd rather keep it out until that one lands, I'm happy to drop that line.


Resumo em português: um app de exemplo mínimo para tvOS em Examples/LumenPlayer, para instalar o Lumen num Apple TV e tocar uma URL pelo motor de remux. Não muda nada na interface do Lumen e não inclui assinatura.

Lumen has no app to run on an Apple TV, so testing the remux engine
there, including the APAC path, needed one. The example plays a URL from
the launch environment with ProAVPlayer first and KSMEPlayer behind it,
through the unchanged KSVideoPlayerView. Signing team and bundle
identifier come from the command line, so the project carries neither.
xcodebuild matches a destination id against the hardware UDID, while devicectl lists a CoreDevice identifier on Xcode releases before 27. Build for any Apple TV and keep the identifier for the install alone.
The API key is part of the URL, so a plain HTTP request exposes it to the network.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant