Skip to content

Android integration: controlling SoundCloud playback from a cross-service playlist app #595

Open

Description

@ExplodingWater

Hi SoundCloud team,

Bowie from your SoundCloud support suggested I open this question here and mentioned that one of your developers has an idea for Android.
I’m planning a mobile app where users connect their own music-service accounts and build a playlist containing tracks from both SoundCloud and other services altogether.

My intended workflow is:

  1. The user presses Play in my app.
  2. The selected track plays through its source service.
  3. When the track finishes, my app starts the next track, which may come from another service.

My app would display the track title, cover art, playback progress, SoundCloud attribution, and a link back to SoundCloud. I’d also like play/pause, next/previous, and seeking controls. Tracks would play sequentially without crossfading, overlap, or modification.
Bowie however confirmed that SoundCloud’s mobile apps don’t expose playback functionality. What supported approach could I use on Android? Would I need to integrate SoundCloud playback directly into my app using the API?
I’d also appreciate guidance on detecting track completion, playback while the screen is locked, and whether a similar approach is available for iOS.

I’m still planning the implementation and will submit the integration to SoundCloud for review before commercial launch.

Thanks,
Martin

Activity

  1. dpreussler commented on Oct 7, 2026

    @dpreussler
    Contributor

    Hi @ExplodingWater

    Our Android app is hooking into the system's MediaSession. Any app can control that to pause/play
    We also implemented onPlayFromSearch and onPlayFromMediaId (where the id is a SoundCloud urn)

    Check out Google's https://github.com/googlesamples/android-media-controller for more

    I'll check back with our iOS team if they have sth similar.

  2. ExplodingWater commented on Oct 7, 2026

    @ExplodingWater
    Author
  3. dpreussler commented on Oct 8, 2026

    @dpreussler
    Contributor

    reliable way to distinguish a track finishing naturally from the user pausing it?

    I think the only way I'd suggest is when onPlaybackStateChanged transitions to STATE_PAUSED query the current playback position from the PlaybackState and compare it against the total duration from the API.

  4. ExplodingWater commented on Oct 8, 2026

    @ExplodingWater
    Author
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions