zu bekommen Ich habe versucht, eine URL
mit ExoPlayer
zu streamen. Die URLs:Nicht in der Lage, getDuration() für AAC-Datei mit ExoPlayer
STREAM_URL_1 = "http://storage.googleapis.com/exoplayer-test-media-0/play.mp3"
STREAM_URL_2 = "https://s3-ap-southeast-1.amazonaws.com/ok.talk.channels/zakirkhan/Zakir+khan+-+when+my+father+took+my+gf%27s+call.aac"
Beiden URLs spielen, aber ich bin nicht in der Lage, die getDuration()
für STREAM_URL_2 zu erhalten, die eine .aac Datei. Die .mp3 funktioniert.
Folgendes ist, wie ich es mache. Wie bekomme ich die getDuration()
für die 2. URL. Selbst seekTo()
funktioniert nicht, wenn getDuration()
nicht funktioniert.
Welche Änderung sollte ich vornehmen? Muss ich irgendeine Extractor
ändern?
player = ExoPlayer.Factory.newInstance(RENDERER_COUNT, MIN_BUFFER_MS, MIN_RE_BUFFER_MS);
playerControl = new PlayerControl(player);
Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
private static final String STREAM_URL = "http://storage.googleapis.com/exoplayer-test-media-0/play.mp3";
uri = Uri.parse(STREAM_URL);
// Build the video and audio renderers.
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(player.getMainHandler(),
null);
String userAgent = Util.getUserAgent(this, "MyMediaPlayer");
DataSource dataSource = new DefaultUriDataSource(context, bandwidthMeter, userAgent, true);
ExtractorSampleSource sampleSource = new ExtractorSampleSource(uri, dataSource, allocator,
BUFFER_SEGMENT_COUNT * BUFFER_SEGMENT_SIZE);
MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource,
null, true);
// Invoke the callback.
TrackRenderer[] renderers = new TrackRenderer[1];
renderers[RadioPlayer.TYPE_AUDIO] = audioRenderer;
player.prepare(renderers);
player.seekTo(0);
player.setPlayWhenReady(true);
Ja, Sie haben Recht. Das gleiche Problem gibt es auch bei dieser AAC-Datei. Aber als ich 'MediaPlayer' benutzte, war es möglich sowohl die Dauer als auch die Suche nach einem Ort zu erreichen. Wie kann das repliziert werden? –