Skip to content

Instantly share code, notes, and snippets.

@LDuncAndroid
Created June 4, 2020 00:55
Show Gist options
  • Save LDuncAndroid/ac1dcc95741b9fc99108e016c9c302b5 to your computer and use it in GitHub Desktop.
Save LDuncAndroid/ac1dcc95741b9fc99108e016c9c302b5 to your computer and use it in GitHub Desktop.
Software Requirements

Android Audio Flinger

Requirements

  1. Introduction 1.1 Purpose 1.2 Intended Audience 1.3 Intended Use 1.4 Scope
  2. Overall Description 2.1 User Needs 2.2 Assumptions and Dependencies
  3. System Features and Requirements 3.1 Functional Requirements 3.2 External Interface Requirements 3.3 System Features 3.4 Nonfunctional Requirements

1. Introduction

1.1 Purpose

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.

1.2 Intended Audience

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.

1.3 Intended Use

This document outlines the intended functionality of Android App Flinger, and should be used as reference to determine scope and functionality.

1.4 Scope

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

2. Overall Description

2.1 User Needs

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.

2.2 Assumptions and Dependencies
  • 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

3. System Features and Requirements

3.1 Functional Requirements
  • 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
3.2 External Interface Requirements
  • Compatible cast device
  • WiFi network shared between device running app and cast device
3.3 System Features
  • Kotlin app
3.4 Nonfunctional Requirements
  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment