harvey186 f03a5f2688 | ||
---|---|---|
.. | ||
build | ||
src | ||
README.md | ||
build.gradle | ||
proguard-rules.pro |
README.md
Android Components > 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:
android.permission.POST_NOTIFICATIONS
android.permission.FOREGROUND_SERVICE
android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK
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/