@grabjs/superapp-sdk
    Preparing search index...

    Class MediaModule

    SDK module for playing DRM-protected media content via JSBridge.

    Provides access to the native media player with DRM support for secure content playback. This code must run on the Grab SuperApp's WebView to function correctly.

    ES Module:

    import { MediaModule } from '@grabjs/superapp-sdk';
    const media = new MediaModule();

    CDN (UMD):

    <script src="https://cdn.jsdelivr.net/npm/@grabjs/superapp-sdk@x.y.z/dist/index.js"></script>
    <script>
    const media = new SuperAppSDK.MediaModule();
    </script>

    Hierarchy (View Summary)

    Index

    Constructors

    Methods

    • Observes DRM-protected media content playback events.

      Parameters

      Returns ObserveDRMPlaybackResponse

      This stream can emit the following status_code values:

      • 200 (OK): Stream emitted a playback event. The result contains DRMPlaybackEvent.
      • 500 (Internal Server Error): Stream emitted an unexpected error.
      • 501 (Not Implemented): Requires Grab app environment.

      mobile.media

      Subscribe to this stream to receive real-time playback events such as progress, completion, and errors. Remember to call unsubscribe() when done to free resources.

      import { MediaModule, isSuccess, isError } from '@grabjs/superapp-sdk';

      // Initialize the media module
      const media = new MediaModule();

      // Observe DRM content playback
      const subscription = media.observePlayDRMContent({
      // DRM content configuration
      }).subscribe({
      next: (response) => {
      if (isSuccess(response)) {
      console.log('Playback event:', response.result);
      } else if (isError(response)) {
      console.error(`Error ${response.status_code}: ${response.error}`);
      }
      },
      complete: () => console.log('Playback completed')
      });

      // Later, to stop receiving events:
      subscription.unsubscribe();
    • Plays DRM-protected media content in the native media player.

      Parameters

      • data: DRMContentConfig

        Configuration for the DRM content including license URL and content metadata.

      Returns Promise<PlayDRMContentResponse>

      This method can return the following status_code values:

      • 200 (OK): Playback initiated successfully.
      • 204 (No Content): Request completed.
      • 500 (Internal Server Error): An unexpected error occurred.
      • 501 (Not Implemented): Requires Grab app environment.

      mobile.media

      Requires proper DRM content configuration including license URL and content metadata. For playback events and status updates, use MediaModule.observePlayDRMContent.

      import { MediaModule, isSuccess, isError } from '@grabjs/superapp-sdk';

      // Initialize the media module
      const media = new MediaModule();

      // Play DRM content
      const response = await media.playDRMContent({
      // DRM content configuration
      });

      // Handle the response
      if (isSuccess(response)) {
      switch (response.status_code) {
      case 200:
      console.log('Playback initiated');
      break;
      case 204:
      console.log('Invalid parameters');
      break;
      }
      } else if (isError(response)) {
      console.error(`Error ${response.status_code}: ${response.error}`);
      } else {
      console.error('Unhandled response');
      }