42 Commits

Author SHA1 Message Date
David Chavez 42767039eb feat(example): Universal App (#86) 2024-04-12 18:56:05 +02:00
Brandon Sneed e969fd5550 Added macOS support & example (#79) 2024-04-11 13:25:51 +02:00
David Chavez 1148a6c28b chore(metadata): Handle more metadata types (#58) 2023-08-15 11:15:03 +02:00
Jonathan Puckey e41bb22a48 Feature: Queue improvements (#28) 2023-01-24 15:50:48 +01:00
David Chavez 2773e4bfec Trigger skip and jump events only when actually taking action 2021-09-28 09:57:24 +02:00
David Chavez 57b6fb08f3 Fix tests 2021-08-12 11:40:21 +02:00
Jørgen Henrichsen 5add7699ff Added an example of how to handle network error.
The example app will now handle a network error, and reload when play is called, after a item failed to load because of a network error.
2019-07-03 16:41:14 +02:00
Jørgen Henrichsen bc1d775875 Reset audio file to spotify preview in example app. 2019-07-03 15:06:50 +02:00
Jørgen Henrichsen 719d3c852b Add an activityindicator to the example.
Shows how an activityindicator can be used to indicate loading, when player is loading or buffering.
2019-07-03 13:21:41 +02:00
Jørgen Henrichsen 4f33d7e688 Add a new state buffering.
Introduces an additional state to better describe the current state of the player.
Previously the player would be `idle` until the  item was loaded, then changing to `ready`. When the player started to play it would first enter `loading`, then subsequently `playing`.
Now it will instead immediately enter `loading`, then when the item is loaded it will enter `ready`. When the item then is played it will enter `buffering` and then `playing`.
This should make it easier to update UI accordingly to the players current state.
2019-07-03 11:23:10 +02:00
Jørgen Henrichsen 46022ef0d6 Add event when AVPlayer is recreated.
The AudioSession category will need to be set again when this event is emitted.
2019-05-11 17:56:43 +02:00
Jørgen Henrichsen ae760c4cac Put events in seperate struct.
Makes it easier to discover which events are available.
2019-03-10 09:37:00 +01:00
Jørgen Henrichsen 757e5f476c Use direct closure handlers for events. 2019-03-10 01:02:04 +01:00
Jørgen Henrichsen 1f5eae407d Make event calls async.
- Events will be emitted on the utility class.
- Use a semaphore to avoid race conditions in the Event class.
- Update example to dispatch ui updates to the main queue.
2019-03-09 21:30:50 +01:00
Jørgen Henrichsen 6804cf5163 Add events as an alternative to delegate. Updated example app.
This allows for selective listening to events, and no need to implement empty uneeded delegate methods.
Added a deprecation message to the delegate class, will most likely remove AudioPlayerDelegate in a future update.
2019-03-09 20:18:07 +01:00
Jørgen Henrichsen 9919bde9fe Fixed compiler warnings. 2018-12-23 14:28:44 +01:00
Jørgen Henrichsen f6b5e30e85 Converted SwiftAudio and example to Swift 4.2 2018-12-23 12:38:39 +01:00
Jørgen Henrichsen 43821c68a9 Made DefaultAudioItem not conform to TimePitching.
New DefaultAudioItemTimePitching can be used instead.
2018-11-14 10:05:20 +01:00
David Chavez cd43ecc6f9 Update example and fix tests 2018-10-29 15:44:06 +01:00
Jørgen Henrichsen 7c4dc27868 Made it possible to override remote command handlers 2018-10-21 10:42:29 +02:00
Jørgen Henrichsen 6a93840463 More tests
Added for SimpleAudioPlayer and QueuedAudioPlayer.
Made next and previous items in the queue non-optional, instead they will be empty when no items are in the queue.
2018-09-06 23:39:03 +02:00
Jørgen Henrichsen 1c4f5ec738 AudioSessionController tests.
Also activate audio session on play instead of launch in the example.
2018-08-05 10:02:53 +02:00
Jørgen Henrichsen da5b7702f7 Use next/prev commands in the example. 2018-08-04 08:55:44 +02:00
Jørgen Henrichsen 04ae9e7986 Made and AVplayerItemObserver
Observes the state of an AVPlayerItem. Just duration for now.
Observing the duration is usefull for updating the UI.
2018-07-29 01:09:08 +02:00
Jørgen Henrichsen 460908e180 Updated example app
Added title, artist, image, timelabels and a queue.
2018-03-25 17:58:56 +02:00
Jørgen Henrichsen 8587b161b2 Added getters for next and previous items. 2018-03-25 17:58:45 +02:00
Jørgen Henrichsen 65bba1eb75 Next, and previous methods. 2018-03-24 17:44:57 +01:00
Jørgen Henrichsen b4953f0a73 QueueManager
Two subclasses of AudioPlayer. Simple and Queued.
2018-03-24 16:53:11 +01:00
Jørgen Henrichsen 661a7755df AudioItems can select their own remote commands.
ALso fixed a problem where remote commands would not be disabled properly.
2018-03-22 11:40:27 +01:00
Jørgen Henrichsen ca8f35166d RemoteEventController that handles remote events 2018-03-21 00:13:17 +01:00
Jørgen Henrichsen dd518108de Fixed singletong of AudioSessionController 2018-03-19 12:44:16 +01:00
Jørgen Henrichsen 5b72d198b2 Updated example app.
Use AudioSessionController.
2018-03-19 12:00:40 +01:00
Jørgen Henrichsen bf02f1423d Restructured and renamed classes to make usage if the player better. 2018-03-19 10:50:49 +01:00
Jørgen Henrichsen 8eb225c86d Updated example 2018-03-18 18:12:32 +01:00
Jørgen Henrichsen 9cfd8025cb Added artwork to AudioItem 2018-03-16 11:24:18 +01:00
Jørgen Henrichsen f7f8fa8748 Updated example project. 2018-03-15 23:49:17 +01:00
Jørgen Henrichsen 1a6100ceb2 Added album title media property. 2018-03-15 22:51:07 +01:00
Jørgen Henrichsen 92f34732e9 Updated example project. 2018-03-15 22:13:28 +01:00
Jørgen Henrichsen c8c3b5b227 Update slider with animated=false 2018-03-14 08:30:24 +01:00
Jørgen Henrichsen 7dcea1490e Made it possible to choose time evnet frequency. 2018-03-11 19:51:24 +01:00
Jørgen Henrichsen e2effcc6ba Example project. 2018-03-11 19:03:37 +01:00
Jørgen Henrichsen 626b8611ef Initial commit 2018-03-11 11:38:45 +01:00