Automattic / Automattic/pocket-casts-android
Playback can stop unexpectedly after moving downloaded files.
- Dominant language
- Kotlin
- Stars
- 2.8k
- Forks
- 308
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 143
Description
### Description
When moving an episode's file on the device, the ExoPlayer instance appears to not get the updated file location, so it stops playback with a source error when it tries to read more data from the file. Tapping play to resume playback works as expected, so this is not a big problem since users are not likely to encounter this very often and it can easily be recovered from.
### Step-by-step reproduction instructions
1. Download a podcast episode that is about an hour in length
2. Start playing the podcast episode
3. Pause the episode
4. Go to the `Profile` tab → "Storage & data use"
5. Change the location where you are storing your podcasts
6. Resume playing the episode
7. Observe that playback resumes (it's probably using the cache at this point)
8. Tap to jump 20 minutes or so further into the episode
9. ⚠️ Observe that playback stops (there will be a "Source error" exception in the logs)
10. Tap play
11. Observe that playback resumes
### Screenshots or screen recording
https://github.com/Automattic/pocket-casts-android/assets/4656348/10c97884-bb03-4fc7-83d4-2fcffde78aa1
### Did you search for existing bug reports?
- [X] I have searched for existing bug reports.
### Device, Operating system, and Pocket Casts app version
Samsung A13, Android 13, Pocket Casts 7.55-pre-release-build
Contributor guide
Research direction
Reproduce the issue using the listed Profile → Storage & data use steps, then trace the ExoPlayer instance when the podcast storage location changes and the later seek produces a Source error. Done means playback continues when seeking well into the episode after moving downloaded files, without requiring the user to tap play again.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100