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'
}
- 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) {
}
}
- You can play audio in
Single/Multiple
mode based on your code:
streamingManager.setMediaList(`Your music list`);
streamingManager.setPlayMultiple(`True/False`);
- 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`);
- 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.