Working on the following Issue: Menu Bar Issues #1647
This begins the draft pull request for my implementation of Media Session support for Nuclear, to update the way Nuclear passes music metadata to the host OS for native control over music in panels such as the macOS Menu Bar "Now Playing" widget.
Current status - Music metadata has been added to the mediaSession Object in the navigator of the page. Fields such as Song Title and Artist have been implemented, and can be viewed already, and listeners for play/pause using IPC calls. Artwork URL is being passed but there is a bug preventing macOS from rendering this image as the album artwork, so this will be fixed in time. Testing for all the above will be added following a correct implementation - this is because my approach is quite volatile at the moment due to the large number of places that might be the most appropriate place to have the mediaSession initialisation calls.
Issues identified with my current implementation:
Thumnail rendering not working
Play/Pause IPC events not logged immediately after interacting with the macOS Widget, lack of sync between Play/Pause button on Nuclear and the macOS widget
Keyboard media keys have weird behaviour between macOS system-wide and when Nuclear is focused.
There isn't currently a way to retrieve current track progress, for live-updates of the playback bar in the macOS Menu Bar. This will need to be looked into.
Testing coverage for the helper methods added in the currently committed code is non-existent, and style/documentation will need to be added.
Working on the following Issue: Menu Bar Issues #1647
This begins the draft pull request for my implementation of Media Session support for Nuclear, to update the way Nuclear passes music metadata to the host OS for native control over music in panels such as the macOS Menu Bar "Now Playing" widget.
Current status - Music metadata has been added to the mediaSession Object in the navigator of the page. Fields such as Song Title and Artist have been implemented, and can be viewed already, and listeners for play/pause using IPC calls. Artwork URL is being passed but there is a bug preventing macOS from rendering this image as the album artwork, so this will be fixed in time. Testing for all the above will be added following a correct implementation - this is because my approach is quite volatile at the moment due to the large number of places that might be the most appropriate place to have the mediaSession initialisation calls.
Issues identified with my current implementation: