Haven’t changed it. It’s currently set to “ExoPlayer (recommended)”. But thanks for pointing out that option. The amazing number of options is part of what I LOVE about this app.
I’ve just now tried using “Built-in Android player (depricated)” and it did successfully play the previously “unplayable” episodes. However I found that once the player started playing I could not pause or stop the playback from within the Antennapod app without rebooting.
Next I switched back to ExoPlayer and was again returned the Unable to access media file error.
Finally I changed to “Sonic Media Player (depricated)” and the previously unplayable files played fine and playback functions seemed to work as well.
Should I stick for now with the Sonic Media Player selection? I’m curious if this is somehow a rights or permissions issue wherein ExoPlayer for some reason just does not have the appropriate permissions to access or playback the file.
Thanks for testing. I am pretty sure that it is not a permission issue because all players are included in the app and just use AntennaPod’s permissions. Usually, playback problems only happen when not using ExoPlayer. If you want to help fix the problem, it would be great if you could send me the full log files of AntennaPod from the “report bug” screen. The logs contain details about what podcasts you listen to (and when), so it is probably best to send it by email instead of publicly. My email address is info@<my user name>.com.
Oh, sorry. I forgot to tell you the most important point Could you please switch back to ExoPlayer, press an episode (so that the error message is displayed) and then send the logs directly afterwards, please? The logs usually only contain the actions of the last few hours.
Another person, Konrad, just sent me an email. Their logs contain the following error messages:
ExoPlayerImplInternal: Source error
ExoPlayerImplInternal: com.google.android.exoplayer2.source.UnrecognizedInputFormatException: None of the available extractors (MatroskaExtractor, FragmentedMp4Extractor, Mp4Extractor, Mp3Extractor, AdtsExtractor, Ac3Extractor, TsExtractor, FlvExtractor, OggExtractor, PsExtractor, WavExtractor, AmrExtractor, Ac4Extractor, FlacExtractor) could read the stream.
ExoPlayerImplInternal: at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractorHolder.selectExtractor(SourceFile:1096)
ExoPlayerImplInternal: at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(SourceFile:975)
ExoPlayerImplInternal: at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(SourceFile:415)
ExoPlayerImplInternal: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
ExoPlayerImplInternal: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
ExoPlayerImplInternal: at java.lang.Thread.run(Thread.java:818)
System.err: de.danoeh.antennapod.core.util.vorbiscommentreader.VorbisCommentReaderException: java.io.EOFException: Length to read: 47 actual: 0
System.err: at de.danoeh.antennapod.core.util.vorbiscommentreader.VorbisCommentReader.readInputStream(SourceFile:63)
System.err: at de.danoeh.antennapod.core.util.ChapterUtils.readOggChaptersFromInputStream(SourceFile:113)
System.err: at de.danoeh.antennapod.core.util.ChapterUtils.loadChaptersFromMediaFile(SourceFile:62)
System.err: at de.danoeh.antennapod.core.feed.FeedMedia.loadChapters(SourceFile:411)
System.err: at de.danoeh.antennapod.core.feed.FeedMedia.loadChapterMarks(SourceFile:397)
System.err: at de.danoeh.antennapod.core.service.playback.PlaybackServiceTaskManager.lambda$startChapterLoader$3$PlaybackServiceTaskManager(SourceFile:318)
System.err: at de.danoeh.antennapod.core.service.playback.-$$Lambda$PlaybackServiceTaskManager$CyYJG8YdrmvA9z0niJUx21Vs_AA.subscribe(lambda)
System.err: at io.reactivex.internal.operators.completable.CompletableCreate.subscribeActual(SourceFile:39)
System.err: at io.reactivex.Completable.subscribe(SourceFile:2302)
System.err: at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(SourceFile:64)
System.err: at io.reactivex.Scheduler$DisposeTask.run(SourceFile:578)
System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.run(SourceFile:66)
System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.call(SourceFile:57)
System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
System.err: at java.lang.Thread.run(Thread.java:818)
System.err: Caused by: java.io.EOFException: Length to read: 47 actual: 0
System.err: at org.apache.commons.io.IOUtils.readFully(SourceFile:3017)
System.err: at org.apache.commons.io.IOUtils.readFully(SourceFile:3035)
System.err: at de.danoeh.antennapod.core.util.vorbiscommentreader.VorbisCommentReader.findIdentificationHeader(SourceFile:97)
While the first error message looks like a format error, the second one makes me think that AntennaPod somehow can’t access the media file. Did you try deleting and re-downloading?
Yes. Deleted and download again was my first step with each file, thinking that perhaps the file was corrupt or perhaps incomplete. Interestingly, I can toggle between ExoPlayer and Sonic Media Player attempting to playback the same file: ExoPlayer will not play, but Sonic Media Player will. Ze plot thickens!
I received your email @noexit. Looks like ExoPlayer is actually crashing internally - even the most recent version does this. The reason is that the file specifies a broken cover image.
Unexpected exception loading stream
java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
at com.google.android.exoplayer2.metadata.id3.Id3Decoder.decodeApicFrame(SourceFile:552)
at com.google.android.exoplayer2.metadata.id3.Id3Decoder.decodeFrame(SourceFile:379)
at com.google.android.exoplayer2.metadata.id3.Id3Decoder.decode(SourceFile:144)
at com.google.android.exoplayer2.extractor.Id3Peeker.peekId3Data(SourceFile:75)
at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.synchronize(SourceFile:300)
at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.sniff(SourceFile:153)
at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractorHolder.selectExtractor(SourceFile:1083)
at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(SourceFile:975)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(SourceFile:415)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
We don’t actually use the cover image that ExoPlayer loads, though. AntennaPod has its own parser for cover images (that cannot parse the broken file either, but a crash there does not prevent playback). I wrote a code change that disables parsing metadata (such as images) in ExoPlayer. I hope that I have not overlooked something and we actually do need the metadata. Let’s see if someone finds a problem when later releasing the change in AntennaPod 2.3.0 beta.