DMAudioStreamer

Additional

Language
Java
Version
v1.0.5 (Dec 27, 2018)
Created
Oct 21, 2017
Updated
Sep 23, 2020 (Retired)
Owner
Dibakar Mistry (dibakarece)
Contributors
Dibakar Mistry (dibakarece)
Arka Prava Basu (archie94)
2
Activity
Badge
Generate
Download
Source code

DMAudioStreamer

DMAudioStreamer library help you to integrate audio streaming in your application.

App Screens

Usage

For a working implementation of this library clone/download this repository.

How to add Library in your project:

allprojects {
 repositories {
  maven { url 'https://jitpack.io' }
 }
}
dependencies {
    implementation 'com.github.dibakarece:DMAudioStreamer:v1.0.5'
}
  1. Add below line code for your application to implement audio streaming :
public class MusicActivity extends AppCompatActivity implements CurrentSessionCallback{
       @Override
           protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);

               this.context = MusicActivity.this;
               streamingManager = AudioStreamingManager.getInstance(context);
           }

       @Override
       public void onStart() {
           super.onStart();
           if (streamingManager != null) {
               streamingManager.subscribesCallBack(this);
           }
       }

       @Override
       public void onStop() {
           super.onStop();
           if (streamingManager != null) {
               streamingManager.unSubscribeCallBack();
           }
       }

       @Override
           public void updatePlaybackState(int state) {
               switch (state) {
                   case PlaybackStateCompat.STATE_PLAYING:
                       break;
                   case PlaybackStateCompat.STATE_PAUSED:
                       break;
                   case PlaybackStateCompat.STATE_NONE:
                       break;
                   case PlaybackStateCompat.STATE_STOPPED:
                       break;
                   case PlaybackStateCompat.STATE_BUFFERING:
                       break;
               }
           }

           @Override
           public void playSongComplete() {
           }

           @Override
           public void currentSeekBarPosition(int progress) {
           }

           @Override
           public void playCurrent(int indexP, MediaMetaData currentAudio) {
           }

           @Override
           public void playNext(int indexP, MediaMetaData CurrentAudio) {
           }

           @Override
           public void playPrevious(int indexP, MediaMetaData currentAudio) {
           }

}
  1. You can play audio in Single/Multiple mode based on your code:
        streamingManager.setMediaList(`Your music list`);
        streamingManager.setPlayMultiple(`True/False`);
  1. For play music:
         MediaMetaData obj = new MediaMetaData();
         infoData.setMediaId(`id`); *Media Id*
         infoData.setMediaUrl(`source`); *Media source `https://yourmusicsource/talkies.mp3`*
         infoData.setMediaTitle(`title`);
         infoData.setMediaArtist(`artist`);
         infoData.setMediaAlbum(`album`);
         infoData.setMediaComposer(`composer`);
         infoData.setMediaDuration(`duration`); *Media Duration Sec.*
         infoData.setMediaArt(`image`); *Media Art*

         streamingManager.onPlay(`Your Music MetaData`);
  1. For notification controller(For more details please check my demo app):
         streamingManager.setShowPlayerNotification(true);
         streamingManager.setPendingIntentAct(`Create Your Pending Intent And Set Here`);
<service
     android:name="dm.audiostreamer.AudioStreamingService"
     android:enabled="true"
     android:exported="true" />
<receiver android:name="dm.audiostreamer.AudioStreamingReceiver">
      <intent-filter>
           <action android:name="dm.audiostreamer.close" />
           <action android:name="dm.audiostreamer.pause" />
           <action android:name="dm.audiostreamer.next" />
           <action android:name="dm.audiostreamer.play" />
           <action android:name="dm.audiostreamer.previous" />
           <action android:name="android.intent.action.MEDIA_BUTTON" />
           <action android:name="android.media.AUDIO_BECOMING_NOISY" />
      </intent-filter>
</receiver>

License

Copyright 2017 Dibakar Mistry

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.