tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

README.md (2318B)


[Android Components](../../../README.md) > Feature > Media

Feature component for website media related features.

Usage

Add the push service for controlling the media session:

class MediaSessionService(
    override val store: BrowserStore,
    override val crashReporter: CrashReporting
) : AbstractMediaSessionService()

Expose the service in the AndroidManifest.xml:

<service android:name=".media.MediaSessionService"
    android:foregroundServiceType="mediaPlayback"
    android:exported="false" />

The AbstractMediaSessionService also requires extra permissions needed to post notification updates on media changes:

Setting up the dependency

Use Gradle to download the library from maven.mozilla.org (Setup repository):

implementation "org.mozilla.components:feature-media:{latest-version}"

Notification: Recording devices

RecordingDevicesMiddleware can be used to show an ongoing notification when a recording device (camera, microphone) is used by web content. Notifications will be shown in the "Media" notification channel.

This feature should only be initialized once globally:

BrowserStore(
  middleware = listOf(
    RecordingDevicesMiddleware(applicationContext, notificationsDelegate)
  )
)

Facts

This component emits the following Facts:

| Action | Item | Description | |--------|-----------------|-------------------------------------------| | PLAY | state | Media started playing. | | PAUSE | state | Media playback was paused. | | STOP | state | Media playback has ended. | | PLAY | notification | Play action of notification was invoked | | PAUSE | notification | Pause action of notification was invoked |

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/