Giter Site home page Giter Site logo

urban-health-labs / goonj Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 0.0 1019 KB

A music player library that supports stream playback with download feature, remote playback, and analytics. It is build on Exo-Player and Google Cast framework.

License: MIT License

Kotlin 99.58% Java 0.42%
exoplayer exoplayer2 audio-library audio cast googlecast-android audio-player android music music-player

goonj's People

Contributors

deepak140596 avatar kshivang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

goonj's Issues

AbstractMethodError in onPlayerStateChanged

Process: com.capitalx.blissfully, PID: 31964
    java.lang.AbstractMethodError: abstract method "void com.google.android.exoplayer2.analytics.AnalyticsListener.onPlayerStateChanged(com.google.android.exoplayer2.analytics.AnalyticsListener$EventTime, boolean, int)"
        at com.google.android.exoplayer2.analytics.AnalyticsCollector.onPlayerStateChanged(AnalyticsCollector.java:470)
        at com.google.android.exoplayer2.ExoPlayerImpl$PlaybackInfoUpdate.lambda$run$4$ExoPlayerImpl$PlaybackInfoUpdate(ExoPlayerImpl.java:812)
        at com.google.android.exoplayer2.-$$Lambda$ExoPlayerImpl$PlaybackInfoUpdate$sJrY7lA_vUJy5MdfV-ndTSxVTXI.invokeListener(Unknown Source:2)
        at com.google.android.exoplayer2.BasePlayer$ListenerHolder.invoke(BasePlayer.java:165)
        at com.google.android.exoplayer2.ExoPlayerImpl.invokeAll(ExoPlayerImpl.java:823)
        at com.google.android.exoplayer2.ExoPlayerImpl.access$000(ExoPlayerImpl.java:43)
        at com.google.android.exoplayer2.ExoPlayerImpl$PlaybackInfoUpdate.run(ExoPlayerImpl.java:810)
        at com.google.android.exoplayer2.ExoPlayerImpl.notifyListeners(ExoPlayerImpl.java:726)
        at com.google.android.exoplayer2.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:701)
        at com.google.android.exoplayer2.ExoPlayerImpl.prepare(ExoPlayerImpl.java:232)
        at com.google.android.exoplayer2.SimpleExoPlayer.prepare(SimpleExoPlayer.java:913)
        at com.google.android.exoplayer2.SimpleExoPlayer.prepare(SimpleExoPlayer.java:898)
        at ai.rever.goonj.player.LocalAudioPlayer.enqueue(LocalAudioPlayer.kt:236)
        at ai.rever.goonj.manager.GoonjPlayerManager.addTrack(GoonjPlayerManager.kt:79)
        at ai.rever.goonj.manager.GoonjPlayerManager.addTrack$default(GoonjPlayerManager.kt:75)
        at ai.rever.goonj.Goonj$addTrack$1.invoke(Goonj.kt:149)
        at ai.rever.goonj.Goonj$addTrack$1.invoke(Goonj.kt:32)
        at ai.rever.goonj.Goonj.run(Goonj.kt:62)
        at ai.rever.goonj.Goonj.addTrack(Goonj.kt:146)
        at ai.rever.goonj.interfaces.GoonjPlayer$DefaultImpls.addTrack(GoonjPlayer.kt:26)
        at ly.blissful.bliss.ui.commons.player.audio.v2.GoonjPlayerActivity.addTrack(GoonjPlayerActivity.kt:28)
        at ai.rever.goonj.interfaces.GoonjPlayer$DefaultImpls.addTrack$default(GoonjPlayer.kt:26)
        at ly.blissful.bliss.ui.commons.player.audio.v2.GoonjPlayerActivity.playNewTrack(GoonjPlayerActivity.kt:210)
        at ly.blissful.bliss.ui.commons.player.audio.v2.GoonjPlayerActivity$requestStart$2.accept(GoonjPlayerActivity.kt:192)
        at ly.blissful.bliss.ui.commons.player.audio.v2.GoonjPlayerActivity$requestStart$2.accept(GoonjPlayerActivity.kt:28)
        at io.reactivex.internal.operators.maybe.MaybeCallbackObserver.onSuccess(MaybeCallbackObserver.java:71)
        at io.reactivex.internal.operators.maybe.MaybeMap$MapMaybeObserver.onSuccess(MaybeMap.java:89)
        at io.reactivex.internal.operators.maybe.MaybeFilter$FilterMaybeObserver.onSuccess(MaybeFilter.java:89)
        at io.reactivex.internal.operators.maybe.MaybeCreate$Emitter.onSuccess(MaybeCreate.java:73)
        at durdinapps.rxfirebase2.RxFirestore$14$2.onSuccess(RxFirestore.java:499)
        at durdinapps.rxfirebase2.RxFirestore$14$2.onSuccess(RxFirestore.java:495)
        at com.google.android.gms.tasks.zzn.run(Unknown Source:4)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6854)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:860)

Music seek is not working with SeekBar

I have tried to seek music by using SeekBar with various methods. I have tried to get seek bar progress on setOnSeekBarChangeListener inside the onStopTrackingTouch I get the progress and convert this progress into milliseconds and pass it to the Goonj Player seekTo but not working.

Please give me some solution because I have integrated this player in my app everything is working fine except this manual seek bar is not working with seekTo methods in Goong Player.

If I am wrong to do this logic then guide me to solve this issue.

I have written the sample code with this comment.

`binding.bigProgress.setOnSeekBarChangeListener(object :SeekBar.OnSeekBarChangeListener{
override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {

        }

        override fun onStartTrackingTouch(p0: SeekBar?) {

        }

        override fun onStopTrackingTouch(p0: SeekBar?) {
            val newPOS = p0?.progress!! * 1000
            seekTo(newPOS) // Goonj Player seekTo method for change music seek position.
        }
    })`

Abstract Method Error

java.lang.AbstractMethodError: abstract method "java.lang.String com.google.android.exoplayer2.ui.PlayerNotificationManager$MediaDescriptionAdapter.getCurrentSubText(com.google.android.exoplayer2.Player)"
        at com.google.android.exoplayer2.ui.PlayerNotificationManager.createNotification(PlayerNotificationManager.java:1038)
        at com.google.android.exoplayer2.ui.PlayerNotificationManager.startOrUpdateNotification(PlayerNotificationManager.java:918)
        at com.google.android.exoplayer2.ui.PlayerNotificationManager.startOrUpdateNotification(PlayerNotificationManager.java:910)
        at com.google.android.exoplayer2.ui.PlayerNotificationManager.access$1000(PlayerNotificationManager.java:108)
        at com.google.android.exoplayer2.ui.PlayerNotificationManager$PlayerListener.onPlayerStateChanged(PlayerNotificationManager.java:1282)
        at com.google.android.exoplayer2.ExoPlayerImpl$PlaybackInfoUpdate.lambda$run$4$ExoPlayerImpl$PlaybackInfoUpdate(ExoPlayerImpl.java:812)
        at com.google.android.exoplayer2.-$$Lambda$ExoPlayerImpl$PlaybackInfoUpdate$sJrY7lA_vUJy5MdfV-ndTSxVTXI.invokeListener(Unknown Source:2)
        at com.google.android.exoplayer2.BasePlayer$ListenerHolder.invoke(BasePlayer.java:165)
        at com.google.android.exoplayer2.ExoPlayerImpl.invokeAll(ExoPlayerImpl.java:823)
        at com.google.android.exoplayer2.ExoPlayerImpl.access$000(ExoPlayerImpl.java:43)
        at com.google.android.exoplayer2.ExoPlayerImpl$PlaybackInfoUpdate.run(ExoPlayerImpl.java:810)
        at com.google.android.exoplayer2.ExoPlayerImpl.notifyListeners(ExoPlayerImpl.java:726)
        at com.google.android.exoplayer2.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:701)
        at com.google.android.exoplayer2.ExoPlayerImpl.prepare(ExoPlayerImpl.java:232)
        at com.google.android.exoplayer2.SimpleExoPlayer.prepare(SimpleExoPlayer.java:913)
        at com.google.android.exoplayer2.SimpleExoPlayer.prepare(SimpleExoPlayer.java:898)
        at ai.rever.goonj.player.LocalAudioPlayer.enqueue(LocalAudioPlayer.kt:236)
        at ai.rever.goonj.manager.GoonjPlayerManager.addTrack(GoonjPlayerManager.kt:79)
        at ai.rever.goonj.manager.GoonjPlayerManager.addTrack$default(GoonjPlayerManager.kt:75)
        at ai.rever.goonj.Goonj$addTrack$1.invoke(Goonj.kt:149)
        at ai.rever.goonj.Goonj$addTrack$1.invoke(Goonj.kt:32)
        at ai.rever.goonj.Goonj.run(Goonj.kt:62)
        at ai.rever.goonj.Goonj.addTrack(Goonj.kt:146)
        at ai.rever.goonj.interfaces.GoonjPlayer$DefaultImpls.addTrack(GoonjPlayer.kt:26)
        at ly.blissful.bliss.ui.commons.player.audio.v2.GoonjPlayerActivity.addTrack(GoonjPlayerActivity.kt:29)
        at ai.rever.goonj.interfaces.GoonjPlayer$DefaultImpls.addTrack$default(GoonjPlayer.kt:26)
        at ly.blissful.bliss.ui.commons.player.audio.v2.GoonjPlayerActivity.playNewTrack(GoonjPlayerActivity.kt:212)
        at ly.blissful.bliss.ui.commons.player.audio.v2.GoonjPlayerActivity$requestStart$2.accept(GoonjPlayerActivity.kt:197)
        at ly.blissful.bliss.ui.commons.player.audio.v2.GoonjPlayerActivity$requestStart$2.accept(GoonjPlayerActivity.kt:29)
        at io.reactivex.internal.operators.maybe.MaybeCallbackObserver.onSuccess(MaybeCallbackObserver.java:71)
        at io.reactivex.internal.operators.maybe.MaybeMap$MapMaybeObserver.onSuccess(MaybeMap.java:89)
        at io.reactivex.internal.operators.maybe.MaybeOnErrorNext$OnErrorNextMaybeObserver.onSuccess(MaybeOnErrorNext.java:88)
        at io.reactivex.internal.operators.maybe.MaybeCreate$Emitter.onSuccess(MaybeCreate.java:73)
        at ly.blissful.bliss.api.DocumentGetterKt$getDocument$1$1.onSuccess(DocumentGetter.kt:48)
        at ly.blissful.bliss.api.DocumentGetterKt$getDocument$1$1.onSuccess(Unknown Source:2)
        at com.google.android.gms.tasks.zzn.run(Unknown Source:4)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7091)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.