BlueHuskyStudios / BlueHuskyStudios/DeadassSimpleMediaPlayer
`isPlaying` is both an input and an output
- Dominant language
- Swift
- Stars
- 0
- Forks
- 3
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 9
Description
`onChange(of: isPlaying)` drives `player.play()` / `player.pause()`, while a `rate` publisher sink drives `isPlaying` from the player. The loop converges because assignments are idempotent, but the direction of authority is ambiguous, and duplicate sinks (#5) make it noisier.
Worth settling before the custom transport controls land, since they'll add a third writer.
Contributor guide
Research direction
Start by tracing the onChange(of: isPlaying) handler, the rate publisher sink, and the player.play()/player.pause() calls. Review the linked pull request and the planned custom transport controls before deciding which component owns playback state. Done should mean one clear authority, no ambiguous duplicate writers, and behavior that remains correct when transport controls are added.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- audio-video-rtc
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100