A radio player mobile application which streams audio from Radio Sai Global Harmony.

Overview

Sai Voice

A radio player which streams audio from Radio Sai Global Harmony.

*Special Thanks to Aman Achutan for the logo

Om Sri Sai Ram 🙏

Sai Voice is an audio app that streams audio data broadcasted by Radio Sai Global Harmony.

⚠️ Internet is needed for the app to function properly.

*All the data inside the app is taken from radiosai.org

Radio Streams include:

  • Asia Stream
  • Africa Stream
  • America Stream
  • Bhajan Stream
  • Discourse Stream
  • Telugu Stream.

Smooth: The app is built to keep a smooth user experience. One can change the streams they want to listen to with ease by just sliding the panel up and selecting the new stream.

Seamless Listening: It is capable of running in the background until the app is removed from the process. Listen to your favourite radio stream with just one click after opening the app (an option to set the favourite stream at the start of the app)

Media Control: It can handle the audio options from a handset to a headset, from lock screen notifications to earphones button click. It also pauses when another player starts and doesn't interrupt any incoming notifications.

Dark Theme: The app also comes with dark theme. One can change the theme they want from settings.

Split Screen: The app is suitable for split screen. Operate this app while doing work in a different app.

Schedule: Look at the radio schedule of different streams from within the app (Redirects to the official website).

Sai Inspires: Thought of the day by Sai Inspires is present inside the app. One can read it at any text size they want by zooming in. One can also share the content by clicking the copy icon (copies to clipboard). One can also view and save the image.

Free without ads: The app is free for all and will remain the same further. No ads are shown in the app. This is thanks to Radio Sai Global Harmony for providing the content without any charge. Like the Sai Organization, we believe in selfless service and do not expect anything in return.

Open Source: We believe that there is nothing to hide and like you to experience the bliss of Swamy. So, the source code of the app is open-source and will remain the same in future.

File Permissions: File write permission is requested only to save images from Sai Inspires. One can deny these permissions from the settings.

"Sai Ram, and Happy Listening" - a quote from Radio Sai

Future Updates

*I cannot guarantee any of the below. But, will try my best to include such features in future releases (if I can)

  • Add a player for vedam which supports all media controls
  • Add android auto support
  • Add google chrome cast support

Radio Player Flow

Stop State -> Play in app screen (user action) -> Play State
Stop State -> Change Radio Stream (user action) -> Changes Radio Stream -> Stop State
Play State -> Change Radio Stream (user action) -> Stop State -> Changes Radio Stream -> Play State
Play State -> Pause in app screen (user action) -> Stop State

Play State -> Pause in notification (user action) -> Pause State
Play State -> Stop in notification (user action) -> Stop State

Motivation

I like to listen to various bhajans which made me fond of radio sai. I've installed the app and kept listening to the radio that gave me peace. I felt the application UI/UX was not up to the mark. The audio stops in between and doesn't handle audio when I receive a call or play another media. That was the start of the idea to build an app that solves these problems. I started to collect resources from where the radio is broadcasted and finally reached the point to have a public release of the app. I referred to the radio sai app and its functionality while building this app.

I feel this app solves the problems that I (and many others) face and would like to share this with all. It's one's choice to use whichever app is comfortable

Screenshots

Architecture

Most of the main features use bloc architecture using providers and streams. The usage of this architecture helps the app no to completely refresh but just helpful for updating the needed components smoothly.

lib
├───audio_service   # audio service related task
├───bloc            # business logic files related to screens
│   ├───radio
│   ├───radio_schedule
│   └───settings
├───constants       # constants
├───screens         # all screens
│   ├───radio
│   ├───sai_inspires
│   ├───radio_schedule
│   └───settings
│       └───general
└───widgets         # widgets related to screens
    ├───radio
    └───settings

Above is generated using "tree" command inside lib/

OpenSource Libraries

shared_preferenecs: used to store short data locally like: saving the radio stream while closing the app and displays the same on app start, display the favourite radio stream on app start.

sliding_up_panel: used to select a different radio stream by sliding up the panel.

shimmer: used to show loading progress in the data loading screens

flutter_custom_tabs: it is used for redirecting the URL from the app to chrome powered browser

internet_connection_checker: used to detect the internet status of the device

just_audio & audio_service: the main base of the app helps play the audio seamlessly with media control

and many other open-source libraries.

Thanks to the Open Source community for providing such great libraries and framework which was very helpful in building the application.

Privacy Policy

The Privacy Policy of the app is in the site: immadisairaj.me/radiosai/privacy_policy.html

License

This project is licensed under the GNU General Public License V2, see the LICENSE.md for more details.

You might also like...
Audio Tagger library for Flutter (Android only)

audio_tagger A Flutter (Android only) plugin for editing and extracting information from your music, at the moment it only works on AAC and OGG (last

Video/Audio Downloader for Android, written with Jetpack Compose.
Video/Audio Downloader for Android, written with Jetpack Compose.

Seal Video/Audio Downloader for Android, written with Jetpack Compose.

A fork of audio-analyzer-for-android in Google code, with a lot of enhancement.
A fork of audio-analyzer-for-android in Google code, with a lot of enhancement.

Audio Spectrum Analyzer for Android A fork of Audio spectrum Analyzer for Android (See README.old for its original readme) This software shows the fre

Music Player application with you tube downloader
Music Player application with you tube downloader

MusicHub Music Player application with you tube downloader Playing around with Kotlin compose the new UI framework Libraries & technologies used MVVM

ExoPlayer - an application level media player for Android
ExoPlayer - an application level media player for Android

ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet. ExoPlayer supports features not currently supported by Android’s MediaPlayer API, including DASH and SmoothStreaming adaptive playbacks.

A basic natural gas mobile application homework.
A basic natural gas mobile application homework.

Natural Gas Homework This is a basic natural gas mobile application project. Compiling You need Android Studio https://developer.android.com/studio/ a

An extensible media player for Android

ExoPlayer ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and vi

Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

Custom Android view with video player, loader and placeholder image
Custom Android view with video player, loader and placeholder image

VideoPlayerView Custom Android view with video player, loader and placeholder image. To stay up-to-date with news about the library Usage Here is an e

Comments
  • Issue with downloading Sai Inspires Image in iOS

    Issue with downloading Sai Inspires Image in iOS

    When the downloaded image in Sai Inspires Image is deleted in iOS, the application feels to not recognise the file has been deleted and doesn't download when try to download again.

    Steps to Reproduce

    1. Show Menu (home screen)
    2. Open "Sai Inspires"
    3. Click on the Image
    4. Download the Image
    5. Open "Photos" app and delete the image
    6. Switch to app and then download the image again

    How it is working?

    In the above steps, after 6th step, there will be a snackbar showing that the image is already downloaded

    How it should work?

    In the above steps, after 6th step, instead of showing the snackbar the application should download the image.

    đź“ť The issue is only in iOS simulator (didn't test in an actual device)

    bug 
    opened by immadisairaj 1
  • Implement Uni/Custom Links (uni_links) in iOS

    Implement Uni/Custom Links (uni_links) in iOS

    Deep Linking is available in android but not in iOS. Implement deep link in iOS.

    Dependency used is uni_links.

    Methods are already implemented for android. So, for iOS mostly only setup is required.

    enhancement 
    opened by immadisairaj 1
  • Optimize the UI for larger screen devices

    Optimize the UI for larger screen devices

    The current UI of the application well supports for mobile devices. Though the application supports for larger devices like Tablets, the UI seems to be a bit off. Optimising the UI of all screens would make the application look good in the devices like tablets.

    For example:

    • Text in larger screen devices have the same size as small screen devices and doesn't increase. Text size should change accordingly. (this is just an example, but almost all screens are similarly odd)

    đź“ť Make sure not to mess up the current code

    Below Images are of Pixel 4a Mobile and Pixel C Tablet

    These below images are for reference in only one of the screen (there are many screens similarly odd in tablet)

    Screenshot 2021-09-30 at 6 18 40 PM Screenshot 2021-09-30 at 6 19 50 PM enhancement 
    opened by immadisairaj 0
Releases(v1.1.1)
Owner
Sai Rajendra Immadi
Open-Source Enthusiast | Senior in B.Tech CSE | Amrita Vishwa Vidhyapeetham, Amritapuri Campus
Sai Rajendra Immadi
Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface.

Fermata Media Player About Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface. It is focused on

Andrey 227 Jan 6, 2023
A full fledge radio player plugin for android and ios

Flutter radio plugin handles a single streaming media preciously. This plugin wa

null 0 Dec 25, 2021
iOS(iPhone & iPad) and Android Radio/Podcast Streaming Apps built in Kotlin Multiplatform Mobile (KMM) with SwiftUI & Jetpack Compose

iOS(iPhone & iPad) and Android Radio/Podcast Streaming Apps built in Kotlin Multiplatform Mobile (KMM) with SwiftUI & Jetpack Compose

MwaiBanda 1 May 31, 2022
Odeon Music Player is a lightweight music player for Android.

Odeon ?? Odeon Music Player is a lightweight music player for Android. Get it on Google Play. We value your privacy, your battery life and your device

Thibault Seisel 63 Dec 20, 2022
Yet Another Video Player (or YAVP) is a Video Player for Android that is based on Googles ExoPlayer.

Yet Another Video Player Yet Another Video Player (or YAVP) is a Video Player for Android that is based on Googles ExoPlayer. Who Is YAVP For? First o

null 62 Dec 29, 2022
Music Player - This is a basic music player built with Android Studio and Kotlin

Music Player Made by Jenny Cárdenas This is a basic music player built with Android Studio and Kotlin, it shows two views in the UI, the user can play

Jenny C 3 Oct 28, 2021
Compose-video-player - Video player for Android Compose powered by ExoPlayer

Compose Video Player Video player for Android Compose powered by ExoPlayer. Addi

Juan Pablo Herrera 22 Dec 13, 2022
Silky - Android application to convert videos from applications such as YouTube, Facebook, Twitter into audio (.mp3)

Silky Español (actualmente la app se encuentra en desarrollo ) Descripcion Aplic

null 2 Aug 24, 2022
Transistor - Simple Radio App for Android

Transistor is an app with a minimalistic approach for listening to radio programs over the internet, which may not be to everyone's liking

y20k 421 Dec 29, 2022
:sound: [Android Library] Easily generate pure audio tone of any frequency in android

Android library to easily generate audio tone in android. Generating pure tone of an specific frequency was never that easy. ZenTone does all the heav

Nishant Srivastava 102 Dec 19, 2022