diff --git a/android/src/main/java/com/ryanheise/just_audio/AudioPlayer.java b/android/src/main/java/com/ryanheise/just_audio/AudioPlayer.java index 337dcc1..ff17203 100644 --- a/android/src/main/java/com/ryanheise/just_audio/AudioPlayer.java +++ b/android/src/main/java/com/ryanheise/just_audio/AudioPlayer.java @@ -45,7 +45,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; -import java.util.stream.Collectors; public class AudioPlayer implements MethodCallHandler, Player.EventListener, MetadataOutput { @@ -454,15 +453,12 @@ public class AudioPlayer implements MethodCallHandler, Player.EventListener, Met .setTag(id) .createMediaSource(Uri.parse((String)map.get("uri"))); case "concatenating": - List audioSources = (List)map.get("audioSources"); + MediaSource[] mediaSources = getAudioSourcesArray(map.get("audioSources")); return new ConcatenatingMediaSource( false, // isAtomic (Boolean)map.get("useLazyPreparation"), - new DefaultShuffleOrder(audioSources.size()), - audioSources - .stream() - .map(s -> getAudioSource(s)) - .toArray(MediaSource[]::new)); + new DefaultShuffleOrder(mediaSources.length), + mediaSources); case "clipping": Long start = getLong(map.get("start")); Long end = getLong(map.get("end")); @@ -482,11 +478,20 @@ public class AudioPlayer implements MethodCallHandler, Player.EventListener, Met } } + private MediaSource[] getAudioSourcesArray(final Object json) { + List mediaSources = getAudioSources(json); + MediaSource[] mediaSourcesArray = new MediaSource[mediaSources.size()]; + mediaSources.toArray(mediaSourcesArray); + return mediaSourcesArray; + } + private List getAudioSources(final Object json) { - return ((List)json) - .stream() - .map(s -> getAudioSource(s)) - .collect(Collectors.toList()); + List audioSources = (List)json; + List mediaSources = new ArrayList(); + for (int i = 0 ; i < audioSources.size(); i++) { + mediaSources.add(getAudioSource(audioSources.get(i))); + } + return mediaSources; } private DataSource.Factory buildDataSourceFactory() { diff --git a/example/pubspec.lock b/example/pubspec.lock index 0bdb2a9..d65101b 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -106,7 +106,7 @@ packages: path: ".." relative: true source: path - version: "0.2.2" + version: "0.3.2" matcher: dependency: transitive description: