react-native-media-notification 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -80,7 +80,9 @@ If you want to customize the small media notification icon on Android, you can a
80
80
  </resources>
81
81
  ```
82
82
 
83
- ## Verwendung
83
+ You can also customize all action icons by overwriting the default icon drawables (e.g. `media3_icon_play`, `media3_icon_pause`, ...)
84
+
85
+ ## Usage
84
86
 
85
87
  ### Basic Setup
86
88
 
@@ -153,6 +155,10 @@ MediaControls.addEventListener('unduck', () => {}); // restore volume after inte
153
155
  await MediaControls.stopMediaNotification();
154
156
  ```
155
157
 
158
+ ## Planned
159
+ - Full Android Auto Support (Headless Tasks, Voice Commands, Media Library)
160
+ - Add more actions/metadata information and better customization
161
+
156
162
  ## API Reference
157
163
 
158
164
  ### Functions
@@ -2,6 +2,7 @@
2
2
 
3
3
  import MediaControls, { ALL_MEDIA_EVENTS } from "./NativeMediaControls.js";
4
4
  import { EventEmitter } from 'fbemitter';
5
+ import { Image } from 'react-native';
5
6
  const eventEmitter = new EventEmitter();
6
7
  let unsubscribe = null;
7
8
  const setUpNativeEventListener = () => {
@@ -21,6 +22,9 @@ const setUpNativeEventListener = () => {
21
22
  * Updates the metadata for the current media track.
22
23
  */
23
24
  export async function updateMetadata(metadata) {
25
+ if (metadata.artwork && typeof metadata.artwork !== 'string') {
26
+ metadata.artwork = Image.resolveAssetSource(metadata.artwork).uri;
27
+ }
24
28
  return MediaControls.updateMetadata(metadata);
25
29
  }
26
30
 
@@ -1 +1 @@
1
- {"version":3,"names":["MediaControls","ALL_MEDIA_EVENTS","EventEmitter","eventEmitter","unsubscribe","setUpNativeEventListener","onEvent","event","command","seekPosition","emit","position","updateMetadata","metadata","stopMediaNotification","enableAudioInterruption","enabled","enableBackgroundMode","setControlEnabled","name","includes","Error","shutdown","addEventListener","handler","addListener","removeAllListeners","forEach","e"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,aAAa,IAClBC,gBAAgB,QAGX,0BAAuB;AAE9B,SAASC,YAAY,QAA2B,WAAW;AAO3D,MAAMC,YAAY,GAAG,IAAID,YAAY,CAAC,CAAC;AACvC,IAAIE,WAA2C,GAAG,IAAI;AAEtD,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EACrC,IAAID,WAAW,EAAE;EAEjBA,WAAW,GAAGJ,aAAa,CAACM,OAAO,CAAEC,KAAK,IAAK;IAC7C,MAAM;MAAEC,OAAO;MAAEC;IAAa,CAAC,GAAGF,KAAK;IACvCJ,YAAY,CAACO,IAAI,CAACF,OAAO,EAAE;MAAEG,QAAQ,EAAEF;IAAa,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,eAAeG,cAAcA,CAClCC,QAA4B,EACb;EACf,OAAOb,aAAa,CAACY,cAAc,CAACC,QAAQ,CAAC;AAC/C;;AAEA;AACA;AACA;AACA,OAAO,eAAeC,qBAAqBA,CAAA,EAAkB;EAC3D,OAAOd,aAAa,CAACc,qBAAqB,CAAC,CAAC;AAC9C;;AAEA;AACA;AACA;AACA,OAAO,eAAeC,uBAAuBA,CAACC,OAAgB,EAAiB;EAC7E,OAAOhB,aAAa,CAACe,uBAAuB,CAACC,OAAO,CAAC;AACvD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAACD,OAAgB,EAAQ;EAC3DhB,aAAa,CAACiB,oBAAoB,CAACD,OAAO,CAAC;AAC7C;AAEA,OAAO,SAASE,iBAAiBA,CAACC,IAAkB,EAAEH,OAAgB,EAAQ;EAC5E,IAAI,CAACf,gBAAgB,CAACmB,QAAQ,CAACD,IAAI,CAAC,EAAE;IACpC,MAAM,IAAIE,KAAK,CAAC,gCAAgCF,IAAI,EAAE,CAAC;EACzD;EACAnB,aAAa,CAACkB,iBAAiB,CAACC,IAAI,EAAEH,OAAO,CAAC;AAChD;AAEA,OAAO,SAASM,QAAQA,CAAA,EAAS;EAC/BtB,aAAa,CAACsB,QAAQ,CAAC,CAAC;AAC1B;;AAEA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BhB,KAAwB,EACxBiB,OAA+C,EAC5B;EACnBnB,wBAAwB,CAAC,CAAC;EAC1B,OAAOF,YAAY,CAACsB,WAAW,CAAClB,KAAK,EAAEiB,OAAO,CAAC;AACjD;;AAEA;AACA;AACA;AACA,OAAO,SAASE,kBAAkBA,CAACnB,KAAyB,EAAQ;EAClE,IAAIA,KAAK,EAAE;IACTJ,YAAY,CAACuB,kBAAkB,CAACnB,KAAK,CAAC;EACxC,CAAC,MAAM;IACLN,gBAAgB,CAAC0B,OAAO,CAAEC,CAAC,IAAKzB,YAAY,CAACuB,kBAAkB,CAACE,CAAC,CAAC,CAAC;EACrE;AACF;;AAEA","ignoreList":[]}
1
+ {"version":3,"names":["MediaControls","ALL_MEDIA_EVENTS","EventEmitter","Image","eventEmitter","unsubscribe","setUpNativeEventListener","onEvent","event","command","seekPosition","emit","position","updateMetadata","metadata","artwork","resolveAssetSource","uri","stopMediaNotification","enableAudioInterruption","enabled","enableBackgroundMode","setControlEnabled","name","includes","Error","shutdown","addEventListener","handler","addListener","removeAllListeners","forEach","e"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,aAAa,IAClBC,gBAAgB,QAGX,0BAAuB;AAE9B,SAASC,YAAY,QAA2B,WAAW;AAC3D,SAEEC,KAAK,QACA,cAAc;AAWrB,MAAMC,YAAY,GAAG,IAAIF,YAAY,CAAC,CAAC;AACvC,IAAIG,WAA2C,GAAG,IAAI;AAEtD,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EACrC,IAAID,WAAW,EAAE;EAEjBA,WAAW,GAAGL,aAAa,CAACO,OAAO,CAAEC,KAAK,IAAK;IAC7C,MAAM;MAAEC,OAAO;MAAEC;IAAa,CAAC,GAAGF,KAAK;IACvCJ,YAAY,CAACO,IAAI,CAACF,OAAO,EAAE;MAAEG,QAAQ,EAAEF;IAAa,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,eAAeG,cAAcA,CAClCC,QAA4B,EACb;EACf,IAAIA,QAAQ,CAACC,OAAO,IAAI,OAAOD,QAAQ,CAACC,OAAO,KAAK,QAAQ,EAAE;IAC5DD,QAAQ,CAACC,OAAO,GAAGZ,KAAK,CAACa,kBAAkB,CAACF,QAAQ,CAACC,OAAO,CAAC,CAACE,GAAG;EACnE;EACA,OAAOjB,aAAa,CAACa,cAAc,CAACC,QAAoC,CAAC;AAC3E;;AAEA;AACA;AACA;AACA,OAAO,eAAeI,qBAAqBA,CAAA,EAAkB;EAC3D,OAAOlB,aAAa,CAACkB,qBAAqB,CAAC,CAAC;AAC9C;;AAEA;AACA;AACA;AACA,OAAO,eAAeC,uBAAuBA,CAACC,OAAgB,EAAiB;EAC7E,OAAOpB,aAAa,CAACmB,uBAAuB,CAACC,OAAO,CAAC;AACvD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAACD,OAAgB,EAAQ;EAC3DpB,aAAa,CAACqB,oBAAoB,CAACD,OAAO,CAAC;AAC7C;AAEA,OAAO,SAASE,iBAAiBA,CAACC,IAAkB,EAAEH,OAAgB,EAAQ;EAC5E,IAAI,CAACnB,gBAAgB,CAACuB,QAAQ,CAACD,IAAI,CAAC,EAAE;IACpC,MAAM,IAAIE,KAAK,CAAC,gCAAgCF,IAAI,EAAE,CAAC;EACzD;EACAvB,aAAa,CAACsB,iBAAiB,CAACC,IAAI,EAAEH,OAAO,CAAC;AAChD;AAEA,OAAO,SAASM,QAAQA,CAAA,EAAS;EAC/B1B,aAAa,CAAC0B,QAAQ,CAAC,CAAC;AAC1B;;AAEA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BnB,KAAwB,EACxBoB,OAA+C,EAC5B;EACnBtB,wBAAwB,CAAC,CAAC;EAC1B,OAAOF,YAAY,CAACyB,WAAW,CAACrB,KAAK,EAAEoB,OAAO,CAAC;AACjD;;AAEA;AACA;AACA;AACA,OAAO,SAASE,kBAAkBA,CAACtB,KAAyB,EAAQ;EAClE,IAAIA,KAAK,EAAE;IACTJ,YAAY,CAAC0B,kBAAkB,CAACtB,KAAK,CAAC;EACxC,CAAC,MAAM;IACLP,gBAAgB,CAAC8B,OAAO,CAAEC,CAAC,IAAK5B,YAAY,CAAC0B,kBAAkB,CAACE,CAAC,CAAC,CAAC;EACrE;AACF;;AAEA","ignoreList":[]}
@@ -3,7 +3,7 @@ import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes';
3
3
  export declare const ALL_MEDIA_EVENTS: readonly ["play", "pause", "stop", "skipToNext", "skipToPrevious", "seekForward", "seekBackward", "seek", "shuffle", "repeatMode"];
4
4
  export type MediaControl = (typeof ALL_MEDIA_EVENTS)[number];
5
5
  export type MediaControlEvent = MediaControl | 'duck' | 'unDuck';
6
- export interface MediaTrackMetadata {
6
+ export interface NativeMediaTrackMetadata {
7
7
  title: string;
8
8
  artist: string;
9
9
  album?: string;
@@ -20,7 +20,7 @@ export interface NativeEvent {
20
20
  }
21
21
  export interface Spec extends TurboModule {
22
22
  setControlEnabled(name: string, enabled: boolean): void;
23
- updateMetadata(metadata: MediaTrackMetadata): Promise<void>;
23
+ updateMetadata(metadata: NativeMediaTrackMetadata): Promise<void>;
24
24
  stopMediaNotification(): Promise<void>;
25
25
  enableAudioInterruption(enabled: boolean): Promise<void>;
26
26
  enableBackgroundMode(enabled: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeMediaControls.d.ts","sourceRoot":"","sources":["../../../src/NativeMediaControls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAG9E,eAAO,MAAM,gBAAgB,oIAWnB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxD,cAAc,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7C,QAAQ,IAAI,IAAI,CAAC;IAGjB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;CAC7C;;AAED,wBAAuE"}
1
+ {"version":3,"file":"NativeMediaControls.d.ts","sourceRoot":"","sources":["../../../src/NativeMediaControls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAG9E,eAAO,MAAM,gBAAgB,oIAWnB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxD,cAAc,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7C,QAAQ,IAAI,IAAI,CAAC;IAGjB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;CAC7C;;AAED,wBAAuE"}
@@ -1,6 +1,10 @@
1
1
  import { type MediaControl, type MediaControlEvent } from './NativeMediaControls';
2
- import type { MediaTrackMetadata } from './NativeMediaControls';
2
+ import type { NativeMediaTrackMetadata } from './NativeMediaControls';
3
3
  import { EventSubscription } from 'fbemitter';
4
+ import type { ImageSourcePropType } from 'react-native/Libraries/Image/Image';
5
+ interface MediaTrackMetadata extends Omit<NativeMediaTrackMetadata, 'artwork'> {
6
+ artwork?: string | ImageSourcePropType;
7
+ }
4
8
  export type MediaControlEventData = {
5
9
  position?: number;
6
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAsB,EAEpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAcF;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAK5E;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,qBAAqB,KAAK,IAAI,GAC9C,iBAAiB,CAGnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAMlE;AAGD,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAsB,EAEpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAK5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,UAAU,kBAAmB,SAAQ,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACxC;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAcF;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAK5E;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,qBAAqB,KAAK,IAAI,GAC9C,iBAAiB,CAGnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAMlE;AAGD,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-media-notification",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "Display and manage media style notifications based on react-native-music-control",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -19,7 +19,7 @@ export type MediaControl = (typeof ALL_MEDIA_EVENTS)[number];
19
19
 
20
20
  export type MediaControlEvent = MediaControl | 'duck' | 'unDuck';
21
21
 
22
- export interface MediaTrackMetadata {
22
+ export interface NativeMediaTrackMetadata {
23
23
  title: string;
24
24
  artist: string;
25
25
  album?: string;
@@ -38,7 +38,7 @@ export interface NativeEvent {
38
38
 
39
39
  export interface Spec extends TurboModule {
40
40
  setControlEnabled(name: string, enabled: boolean): void;
41
- updateMetadata(metadata: MediaTrackMetadata): Promise<void>;
41
+ updateMetadata(metadata: NativeMediaTrackMetadata): Promise<void>;
42
42
  stopMediaNotification(): Promise<void>;
43
43
 
44
44
  // Audio interruption handling
package/src/index.tsx CHANGED
@@ -3,9 +3,17 @@ import MediaControls, {
3
3
  type MediaControl,
4
4
  type MediaControlEvent,
5
5
  } from './NativeMediaControls';
6
- import type { MediaTrackMetadata } from './NativeMediaControls';
6
+ import type { NativeMediaTrackMetadata } from './NativeMediaControls';
7
7
  import { EventEmitter, EventSubscription } from 'fbemitter';
8
- import { type EventSubscription as NativeEventSubscription } from 'react-native';
8
+ import {
9
+ type EventSubscription as NativeEventSubscription,
10
+ Image,
11
+ } from 'react-native';
12
+ import type { ImageSourcePropType } from 'react-native/Libraries/Image/Image';
13
+
14
+ interface MediaTrackMetadata extends Omit<NativeMediaTrackMetadata, 'artwork'> {
15
+ artwork?: string | ImageSourcePropType;
16
+ }
9
17
 
10
18
  export type MediaControlEventData = {
11
19
  position?: number; // für seek events
@@ -29,7 +37,10 @@ const setUpNativeEventListener = () => {
29
37
  export async function updateMetadata(
30
38
  metadata: MediaTrackMetadata
31
39
  ): Promise<void> {
32
- return MediaControls.updateMetadata(metadata);
40
+ if (metadata.artwork && typeof metadata.artwork !== 'string') {
41
+ metadata.artwork = Image.resolveAssetSource(metadata.artwork).uri;
42
+ }
43
+ return MediaControls.updateMetadata(metadata as NativeMediaTrackMetadata);
33
44
  }
34
45
 
35
46
  /**