Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added New Plugin For Recording Audio #449

Merged
merged 35 commits into from
Sep 5, 2024
Merged

Added New Plugin For Recording Audio #449

merged 35 commits into from
Sep 5, 2024

Conversation

this-Aditya
Copy link
Member

@this-Aditya this-Aditya commented Jul 19, 2024

Description

This pull request adds a new plugin to the application for capturing high-quality audio data in Android.

Plugin Workflow Description

This plugin provides an interactive UI for recording and managing audio data. Below is a detailed description of how the plugin works:

Workflow

  1. Plugin Action:

    • The plugin has an action that, when clicked, opens a user interface (UI) for interacting with the plugin.
  2. Activity Launch:

    • The action opens the PhoneAudioInputActivity, which serves as the main interface for the plugin.
  3. Manager Connection:

    • PhoneAudioInputActivity is connected to the PhoneAudioInputManager through interfaces defined in PhoneAudioInputState. This connection manages the state and interactions between the UI and the underlying audio recording functionalities.
  4. Recording Capabilities:

    • The activity provides capabilities for recording audio, allowing users to start, stop, and manage audio recordings directly from the UI.
  5. Device Selection Mechanism:

    • The device selection mechanism automatically prioritizes the USB audio device if connected. If no USB device is found, the plugin selects external devices in the following order of precedence:
      • TYPE_USB_DEVICE
      • TYPE_BLUETOOTH
      • TYPE_WIRED_HEADSET
    • If no external device is found, the plugin defaults to using the smartphone's built-in microphone.
  6. Fragment Integration:

    • PhoneAudioInputActivity opens a fragment that provides additional capabilities, including:
      • Audio Playback: Users can playback the recorded audio to review it before sending.
      • Data Sending: Users can send the recorded audio data for storing to s3.
  7. Pending Functionality:

    • The recorded audio files will be uploaded to Amazon S3. This functionality is currently pending and will be added soon.

resolves #447

Interfaces defined in PhoneAudioInputState for smooth connection between Activity and Manager

InputRecordInfo for status tracking of Audio Recording
Copy link
Member

@yatharthranjan yatharthranjan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, let's merge to dev. We can add future changes via separate PRs (specifically uploading of audio files and schema updates)

@this-Aditya
Copy link
Member Author

@yatharthranjan Are we scheduling the release of the new schema version soon, so that we can have CI passed for both the audio and polar plugins?
Otherwise, we can simply merge.

@yatharthranjan yatharthranjan mentioned this pull request Sep 5, 2024
@this-Aditya
Copy link
Member Author

Merging this pull request to facilitate the review of #461

@this-Aditya this-Aditya merged commit 318103d into dev Sep 5, 2024
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Plugin Development for Uncompressed Audio Recording with USB Microphone Support
2 participants