- Introduction 1.1 Purpose 1.2 Intended Audience 1.3 Intended Use 1.4 Scope
- Overall Description 2.1 User Needs 2.2 Assumptions and Dependencies
- System Features and Requirements 3.1 Functional Requirements 3.2 External Interface Requirements 3.3 System Features 3.4 Nonfunctional Requirements
Some Android applications don't provide the ability to cast their audio output to Cast supported devices:
- Chromecast
- Google Home
- Google Home Hub
Android Audio Flinger aims to allow users of the app to cast the audio currently playing from 3rd-party applications to cast supported devices.
This document is subject to change and will be updated during the process.
The intended audience of this document is anyone working on this project. Where possible, non-technical terms and descriptions are used to widen the audience, however, in some cases this cannot be avoided. If you require extroplating of terms or descriptions, please create a request to have something explained in greater detail.
This document outlines the intended functionality of Android App Flinger, and should be used as reference to determine scope and functionality.
The aim of this project is to provide a solution to allow users to cast the audio output of 3rd-party applications to cast enabled devices.
Milestones:
- Exploratory - Determine requirements
- MVP - Support Mixlr
Some apps don't provide the ability to cast their audio to cast enabled devices. This could be down their own users needs to a number of reasons both internally and externally to their business case. However, the need can still exist for some users and I myself require this from time to time.
- Assumptions
- We are able to consume the audio source output by 3rd party apps
- We can re-direct that audio source to a cast enabled device
- Dependencies
- Android SDK
- Google Cast SDK
- Ability to install application on Android device with an Android version of 21 or greater
- User can obtain list of available cast devices
- User can select from list of available cast devices to connect to cast device
- User cam start casting to device
- User can stop casting to device
- User can disconnect cast device
- UI
- Permission onboarding (if necessary)
- List of selectable cast devices
- Connection status widget
- Connection enable confirmation dialog
- Connection disable confirmation dialog
- Compatible cast device
- WiFi network shared between device running app and cast device
- Kotlin app
- Audio quality should not be degraded where possible
- Measurement of this may be difficult
- Connection to cast device should be as quick as similar functions integrated into 3rd-party apps - see Spotify
- Unit Tests
- Functional Tests
- CI/CD process
- Build on PR
- Gated PRs
- Tested on APIs 21 > 29
- Documented code