Remove Downloader.ProgressListener

ProgressiveDownloader never implemented this properly, and we
don't use it in DownloadManager/DownloadService, both of which
use a polling model. A polling model is also what's used elsewhere,
for example to query the current playback position.

This is effectively doing the TODO in ProgressiveDownloader.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=194214579
This commit is contained in:
olly 2018-04-25 02:36:19 -07:00 committed by Oliver Woodman
parent b6f646ed96
commit b77d6c4ef4
50 changed files with 220 additions and 346 deletions

View File

@ -766,7 +766,7 @@ public final class DownloadManager {
long errorPosition = C.LENGTH_UNSET; long errorPosition = C.LENGTH_UNSET;
while (true) { while (true) {
try { try {
downloader.download(null); downloader.download();
break; break;
} catch (IOException e) { } catch (IOException e) {
long downloadedBytes = downloader.getDownloadedBytes(); long downloadedBytes = downloader.getDownloadedBytes();

View File

@ -15,7 +15,6 @@
*/ */
package com.google.android.exoplayer2.offline; package com.google.android.exoplayer2.offline;
import android.support.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import java.io.IOException; import java.io.IOException;
@ -24,26 +23,6 @@ import java.io.IOException;
*/ */
public interface Downloader { public interface Downloader {
/**
* Listener notified when download progresses.
* <p>
* No guarantees are made about the thread or threads on which the listener is called, but it is
* guaranteed that listener methods will be called in a serial fashion (i.e. one at a time) and in
* the same order as events occurred.
*/
interface ProgressListener {
/**
* Called during the download. Calling intervals depend on the {@link Downloader}
* implementation.
*
* @param downloader The reporting instance.
* @param downloadPercentage The download percentage. This value can be an estimation.
* @param downloadedBytes Total number of downloaded bytes.
* @see #download(ProgressListener)
*/
void onDownloadProgress(Downloader downloader, float downloadPercentage, long downloadedBytes);
}
/** /**
* Initializes the downloader. * Initializes the downloader.
* *
@ -58,13 +37,11 @@ public interface Downloader {
/** /**
* Downloads the media. * Downloads the media.
* *
* @param listener If not null, called during download.
* @throws DownloadException Thrown if the media cannot be downloaded. * @throws DownloadException Thrown if the media cannot be downloaded.
* @throws InterruptedException If the thread has been interrupted. * @throws InterruptedException If the thread has been interrupted.
* @throws IOException Thrown when there is an io error while downloading. * @throws IOException Thrown when there is an io error while downloading.
*/ */
void download(@Nullable ProgressListener listener) void download() throws InterruptedException, IOException;
throws InterruptedException, IOException;
/** /**
* Removes all of the downloaded data of the media. * Removes all of the downloaded data of the media.

View File

@ -16,7 +16,6 @@
package com.google.android.exoplayer2.offline; package com.google.android.exoplayer2.offline;
import android.net.Uri; import android.net.Uri;
import android.support.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.upstream.DataSpec; import com.google.android.exoplayer2.upstream.DataSpec;
import com.google.android.exoplayer2.upstream.cache.Cache; import com.google.android.exoplayer2.upstream.cache.Cache;
@ -60,19 +59,12 @@ public final class ProgressiveDownloader implements Downloader {
} }
@Override @Override
public void download(@Nullable ProgressListener listener) throws InterruptedException, public void download() throws InterruptedException, IOException {
IOException {
priorityTaskManager.add(C.PRIORITY_DOWNLOAD); priorityTaskManager.add(C.PRIORITY_DOWNLOAD);
try { try {
byte[] buffer = new byte[BUFFER_SIZE_BYTES]; byte[] buffer = new byte[BUFFER_SIZE_BYTES];
CacheUtil.cache(dataSpec, cache, dataSource, buffer, priorityTaskManager, C.PRIORITY_DOWNLOAD, CacheUtil.cache(dataSpec, cache, dataSource, buffer, priorityTaskManager, C.PRIORITY_DOWNLOAD,
cachingCounters, true); cachingCounters, true);
// TODO: Work out how to call onDownloadProgress periodically during the download, or else
// get rid of ProgressListener and move to a model where the manager periodically polls
// Downloaders.
if (listener != null) {
listener.onDownloadProgress(this, 100, cachingCounters.contentLength);
}
} finally { } finally {
priorityTaskManager.remove(C.PRIORITY_DOWNLOAD); priorityTaskManager.remove(C.PRIORITY_DOWNLOAD);
} }

View File

@ -17,7 +17,6 @@ package com.google.android.exoplayer2.offline;
import android.net.Uri; import android.net.Uri;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DataSpec; import com.google.android.exoplayer2.upstream.DataSpec;
@ -146,19 +145,16 @@ public abstract class SegmentDownloader<M, K> implements Downloader {
* Downloads the content for the selected representations in sync or resumes a previously stopped * Downloads the content for the selected representations in sync or resumes a previously stopped
* download. * download.
* *
* @param listener If not null, called during download.
* @throws IOException Thrown when there is an io error while downloading. * @throws IOException Thrown when there is an io error while downloading.
* @throws DownloadException Thrown if the media cannot be downloaded. * @throws DownloadException Thrown if the media cannot be downloaded.
* @throws InterruptedException If the thread has been interrupted. * @throws InterruptedException If the thread has been interrupted.
*/ */
@Override @Override
public final synchronized void download(@Nullable ProgressListener listener) public final synchronized void download() throws IOException, InterruptedException {
throws IOException, InterruptedException {
priorityTaskManager.add(C.PRIORITY_DOWNLOAD); priorityTaskManager.add(C.PRIORITY_DOWNLOAD);
try { try {
getManifestIfNeeded(false); getManifestIfNeeded(false);
List<Segment> segments = initStatus(false); List<Segment> segments = initStatus(false);
notifyListener(listener); // Initial notification.
Collections.sort(segments); Collections.sort(segments);
byte[] buffer = new byte[BUFFER_SIZE_BYTES]; byte[] buffer = new byte[BUFFER_SIZE_BYTES];
CachingCounters cachingCounters = new CachingCounters(); CachingCounters cachingCounters = new CachingCounters();
@ -167,7 +163,6 @@ public abstract class SegmentDownloader<M, K> implements Downloader {
priorityTaskManager, C.PRIORITY_DOWNLOAD, cachingCounters, true); priorityTaskManager, C.PRIORITY_DOWNLOAD, cachingCounters, true);
downloadedBytes += cachingCounters.newlyCachedBytes; downloadedBytes += cachingCounters.newlyCachedBytes;
downloadedSegments++; downloadedSegments++;
notifyListener(listener);
} }
} finally { } finally {
priorityTaskManager.remove(C.PRIORITY_DOWNLOAD); priorityTaskManager.remove(C.PRIORITY_DOWNLOAD);
@ -279,12 +274,6 @@ public abstract class SegmentDownloader<M, K> implements Downloader {
CacheUtil.remove(cache, CacheUtil.generateKey(uri)); CacheUtil.remove(cache, CacheUtil.generateKey(uri));
} }
private void notifyListener(ProgressListener listener) {
if (listener != null) {
listener.onDownloadProgress(this, getDownloadPercentage(), downloadedBytes);
}
}
/** /**
* Initializes totalSegments, downloadedSegments and downloadedBytes for selected representations. * Initializes totalSegments, downloadedSegments and downloadedBytes for selected representations.
* If not offline then downloads missing metadata. * If not offline then downloads missing metadata.

View File

@ -668,8 +668,7 @@ public class DownloadManagerTest {
} }
@Override @Override
public void download(@Nullable ProgressListener listener) public void download() throws InterruptedException, IOException {
throws InterruptedException, IOException {
assertThat(isRemoveAction).isFalse(); assertThat(isRemoveAction).isFalse();
started.countDown(); started.countDown();
block(); block();

View File

@ -52,13 +52,7 @@ import java.util.List;
* DashDownloader dashDownloader = new DashDownloader(manifestUrl, constructorHelper); * DashDownloader dashDownloader = new DashDownloader(manifestUrl, constructorHelper);
* // Select the first representation of the first adaptation set of the first period * // Select the first representation of the first adaptation set of the first period
* dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)}); * dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)});
* dashDownloader.download(new ProgressListener() { * dashDownloader.download();
* {@literal @}Override
* public void onDownloadProgress(Downloader downloader, float downloadPercentage,
* long downloadedBytes) {
* // Invoked periodically during the download.
* }
* });
* // Access downloaded data using CacheDataSource * // Access downloaded data using CacheDataSource
* CacheDataSource cacheDataSource = * CacheDataSource cacheDataSource =
* new CacheDataSource(cache, factory.createDataSource(), CacheDataSource.FLAG_BLOCK_ON_CACHE); * new CacheDataSource(cache, factory.createDataSource(), CacheDataSource.FLAG_BLOCK_ON_CACHE);

View File

@ -28,7 +28,6 @@ import static org.mockito.Mockito.when;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.offline.DownloadException; import com.google.android.exoplayer2.offline.DownloadException;
import com.google.android.exoplayer2.offline.Downloader.ProgressListener;
import com.google.android.exoplayer2.offline.DownloaderConstructorHelper; import com.google.android.exoplayer2.offline.DownloaderConstructorHelper;
import com.google.android.exoplayer2.source.dash.manifest.DashManifest; import com.google.android.exoplayer2.source.dash.manifest.DashManifest;
import com.google.android.exoplayer2.source.dash.manifest.RepresentationKey; import com.google.android.exoplayer2.source.dash.manifest.RepresentationKey;
@ -47,8 +46,6 @@ import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.InOrder;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
@ -125,7 +122,7 @@ public class DashDownloaderTest {
DashDownloader dashDownloader = getDashDownloader(fakeDataSet); DashDownloader dashDownloader = getDashDownloader(fakeDataSet);
dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)}); dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)});
dashDownloader.download(null); dashDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
} }
@ -146,7 +143,7 @@ public class DashDownloaderTest {
DashDownloader dashDownloader = getDashDownloader(fakeDataSet); DashDownloader dashDownloader = getDashDownloader(fakeDataSet);
dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)}); dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)});
dashDownloader.download(null); dashDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
} }
@ -167,7 +164,7 @@ public class DashDownloaderTest {
dashDownloader.selectRepresentations( dashDownloader.selectRepresentations(
new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(0, 1, 0)}); new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(0, 1, 0)});
dashDownloader.download(null); dashDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
} }
@ -190,7 +187,7 @@ public class DashDownloaderTest {
DashDownloader dashDownloader = getDashDownloader(fakeDataSet); DashDownloader dashDownloader = getDashDownloader(fakeDataSet);
// dashDownloader.selectRepresentations() isn't called // dashDownloader.selectRepresentations() isn't called
dashDownloader.download(null); dashDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
dashDownloader.remove(); dashDownloader.remove();
@ -198,7 +195,7 @@ public class DashDownloaderTest {
dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)}); dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)});
// clear selection // clear selection
dashDownloader.selectRepresentations(new RepresentationKey[0]); dashDownloader.selectRepresentations(new RepresentationKey[0]);
dashDownloader.download(null); dashDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
dashDownloader.remove(); dashDownloader.remove();
} }
@ -223,7 +220,7 @@ public class DashDownloaderTest {
dashDownloader.selectRepresentations( dashDownloader.selectRepresentations(
new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(0, 1, 0)}); new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(0, 1, 0)});
dashDownloader.download(null); dashDownloader.download();
DataSpec[] openedDataSpecs = fakeDataSource.getAndClearOpenedDataSpecs(); DataSpec[] openedDataSpecs = fakeDataSource.getAndClearOpenedDataSpecs();
assertThat(openedDataSpecs.length).isEqualTo(8); assertThat(openedDataSpecs.length).isEqualTo(8);
@ -257,7 +254,7 @@ public class DashDownloaderTest {
dashDownloader.selectRepresentations( dashDownloader.selectRepresentations(
new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(1, 0, 0)}); new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(1, 0, 0)});
dashDownloader.download(null); dashDownloader.download();
DataSpec[] openedDataSpecs = fakeDataSource.getAndClearOpenedDataSpecs(); DataSpec[] openedDataSpecs = fakeDataSource.getAndClearOpenedDataSpecs();
assertThat(openedDataSpecs.length).isEqualTo(8); assertThat(openedDataSpecs.length).isEqualTo(8);
@ -289,12 +286,12 @@ public class DashDownloaderTest {
dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)}); dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)});
// downloadRepresentations fails on the first try // downloadRepresentations fails on the first try
try { try {
dashDownloader.download(null); dashDownloader.download();
fail(); fail();
} catch (IOException e) { } catch (IOException e) {
// ignore // ignore
} }
dashDownloader.download(null); dashDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
} }
@ -322,7 +319,7 @@ public class DashDownloaderTest {
// downloadRepresentations fails after downloading init data, segment 1 and 2 bytes in segment 2 // downloadRepresentations fails after downloading init data, segment 1 and 2 bytes in segment 2
try { try {
dashDownloader.download(null); dashDownloader.download();
fail(); fail();
} catch (IOException e) { } catch (IOException e) {
// ignore // ignore
@ -330,34 +327,11 @@ public class DashDownloaderTest {
dashDownloader.init(); dashDownloader.init();
assertCounters(dashDownloader, 4, 2, 10 + 4 + 2); assertCounters(dashDownloader, 4, 2, 10 + 4 + 2);
dashDownloader.download(null); dashDownloader.download();
assertCounters(dashDownloader, 4, 4, 10 + 4 + 5 + 6); assertCounters(dashDownloader, 4, 4, 10 + 4 + 5 + 6);
} }
@Test
public void testListener() throws Exception {
FakeDataSet fakeDataSet =
new FakeDataSet()
.setData(TEST_MPD_URI, TEST_MPD)
.setRandomData("audio_init_data", 10)
.setRandomData("audio_segment_1", 4)
.setRandomData("audio_segment_2", 5)
.setRandomData("audio_segment_3", 6);
DashDownloader dashDownloader = getDashDownloader(fakeDataSet);
dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)});
ProgressListener mockListener = Mockito.mock(ProgressListener.class);
dashDownloader.download(mockListener);
InOrder inOrder = Mockito.inOrder(mockListener);
inOrder.verify(mockListener).onDownloadProgress(dashDownloader, 0.0f, 0);
inOrder.verify(mockListener).onDownloadProgress(dashDownloader, 25.0f, 10);
inOrder.verify(mockListener).onDownloadProgress(dashDownloader, 50.0f, 14);
inOrder.verify(mockListener).onDownloadProgress(dashDownloader, 75.0f, 19);
inOrder.verify(mockListener).onDownloadProgress(dashDownloader, 100.0f, 25);
inOrder.verifyNoMoreInteractions();
}
@Test @Test
public void testRemoveAll() throws Exception { public void testRemoveAll() throws Exception {
FakeDataSet fakeDataSet = FakeDataSet fakeDataSet =
@ -373,7 +347,7 @@ public class DashDownloaderTest {
DashDownloader dashDownloader = getDashDownloader(fakeDataSet); DashDownloader dashDownloader = getDashDownloader(fakeDataSet);
dashDownloader.selectRepresentations( dashDownloader.selectRepresentations(
new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(0, 1, 0)}); new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(0, 1, 0)});
dashDownloader.download(null); dashDownloader.download();
dashDownloader.remove(); dashDownloader.remove();
@ -391,7 +365,7 @@ public class DashDownloaderTest {
dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)}); dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)});
dashDownloader.init(); dashDownloader.init();
try { try {
dashDownloader.download(null); dashDownloader.download();
fail(); fail();
} catch (DownloadException e) { } catch (DownloadException e) {
// expected exception. // expected exception.
@ -415,7 +389,7 @@ public class DashDownloaderTest {
dashDownloader.selectRepresentations( dashDownloader.selectRepresentations(
new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(0, 1, 0)}); new RepresentationKey[] {new RepresentationKey(0, 0, 0), new RepresentationKey(0, 1, 0)});
dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)}); dashDownloader.selectRepresentations(new RepresentationKey[] {new RepresentationKey(0, 0, 0)});
dashDownloader.download(null); dashDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
} }

View File

@ -94,7 +94,7 @@ public class HlsDownloaderTest {
public void testSelectRepresentationsClearsPreviousSelection() throws Exception { public void testSelectRepresentationsClearsPreviousSelection() throws Exception {
hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI)); hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI));
hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_2_URI)); hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_2_URI));
hlsDownloader.download(null); hlsDownloader.download();
assertCachedData( assertCachedData(
cache, cache,
@ -109,7 +109,7 @@ public class HlsDownloaderTest {
@Test @Test
public void testCounterMethods() throws Exception { public void testCounterMethods() throws Exception {
hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI)); hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI));
hlsDownloader.download(null); hlsDownloader.download();
assertThat(hlsDownloader.getTotalSegments()).isEqualTo(4); assertThat(hlsDownloader.getTotalSegments()).isEqualTo(4);
assertThat(hlsDownloader.getDownloadedSegments()).isEqualTo(4); assertThat(hlsDownloader.getDownloadedSegments()).isEqualTo(4);
@ -120,7 +120,7 @@ public class HlsDownloaderTest {
@Test @Test
public void testInitStatus() throws Exception { public void testInitStatus() throws Exception {
hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI)); hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI));
hlsDownloader.download(null); hlsDownloader.download();
HlsDownloader newHlsDownloader = getHlsDownloader(MASTER_PLAYLIST_URI); HlsDownloader newHlsDownloader = getHlsDownloader(MASTER_PLAYLIST_URI);
newHlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI)); newHlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI));
@ -135,7 +135,7 @@ public class HlsDownloaderTest {
@Test @Test
public void testDownloadRepresentation() throws Exception { public void testDownloadRepresentation() throws Exception {
hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI)); hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI));
hlsDownloader.download(null); hlsDownloader.download();
assertCachedData( assertCachedData(
cache, cache,
@ -150,7 +150,7 @@ public class HlsDownloaderTest {
@Test @Test
public void testDownloadMultipleRepresentations() throws Exception { public void testDownloadMultipleRepresentations() throws Exception {
hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI, MEDIA_PLAYLIST_2_URI)); hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI, MEDIA_PLAYLIST_2_URI));
hlsDownloader.download(null); hlsDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
} }
@ -170,7 +170,7 @@ public class HlsDownloaderTest {
hlsDownloader = getHlsDownloader(MASTER_PLAYLIST_URI); hlsDownloader = getHlsDownloader(MASTER_PLAYLIST_URI);
// hlsDownloader.selectRepresentations() isn't called // hlsDownloader.selectRepresentations() isn't called
hlsDownloader.download(null); hlsDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
hlsDownloader.remove(); hlsDownloader.remove();
@ -178,7 +178,7 @@ public class HlsDownloaderTest {
hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI)); hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI));
// clear selection // clear selection
hlsDownloader.selectRepresentations(getKeys()); hlsDownloader.selectRepresentations(getKeys());
hlsDownloader.download(null); hlsDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
hlsDownloader.remove(); hlsDownloader.remove();
} }
@ -186,7 +186,7 @@ public class HlsDownloaderTest {
@Test @Test
public void testRemoveAll() throws Exception { public void testRemoveAll() throws Exception {
hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI, MEDIA_PLAYLIST_2_URI)); hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI, MEDIA_PLAYLIST_2_URI));
hlsDownloader.download(null); hlsDownloader.download();
hlsDownloader.remove(); hlsDownloader.remove();
assertCacheEmpty(cache); assertCacheEmpty(cache);
@ -196,7 +196,7 @@ public class HlsDownloaderTest {
public void testDownloadMediaPlaylist() throws Exception { public void testDownloadMediaPlaylist() throws Exception {
hlsDownloader = getHlsDownloader(MEDIA_PLAYLIST_1_URI); hlsDownloader = getHlsDownloader(MEDIA_PLAYLIST_1_URI);
hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI)); hlsDownloader.selectRepresentations(getKeys(MEDIA_PLAYLIST_1_URI));
hlsDownloader.download(null); hlsDownloader.download();
assertCachedData( assertCachedData(
cache, cache,
@ -219,7 +219,7 @@ public class HlsDownloaderTest {
.setRandomData("fileSequence2.ts", 12); .setRandomData("fileSequence2.ts", 12);
hlsDownloader = getHlsDownloader(ENC_MEDIA_PLAYLIST_URI); hlsDownloader = getHlsDownloader(ENC_MEDIA_PLAYLIST_URI);
hlsDownloader.selectRepresentations(getKeys(ENC_MEDIA_PLAYLIST_URI)); hlsDownloader.selectRepresentations(getKeys(ENC_MEDIA_PLAYLIST_URI));
hlsDownloader.download(null); hlsDownloader.download();
assertCachedData(cache, fakeDataSet); assertCachedData(cache, fakeDataSet);
} }

View File

@ -47,13 +47,7 @@ import java.util.List;
* SsDownloader ssDownloader = new SsDownloader(manifestUrl, constructorHelper); * SsDownloader ssDownloader = new SsDownloader(manifestUrl, constructorHelper);
* // Select the first track of the first stream element * // Select the first track of the first stream element
* ssDownloader.selectRepresentations(new TrackKey[] {new TrackKey(0, 0)}); * ssDownloader.selectRepresentations(new TrackKey[] {new TrackKey(0, 0)});
* ssDownloader.download(new ProgressListener() { * ssDownloader.download();
* {@literal @}Override
* public void onDownloadProgress(Downloader downloader, float downloadPercentage,
* long downloadedBytes) {
* // Invoked periodically during the download.
* }
* });
* // Access downloaded data using CacheDataSource * // Access downloaded data using CacheDataSource
* CacheDataSource cacheDataSource = * CacheDataSource cacheDataSource =
* new CacheDataSource(cache, factory.createDataSource(), CacheDataSource.FLAG_BLOCK_ON_CACHE); * new CacheDataSource(cache, factory.createDataSource(), CacheDataSource.FLAG_BLOCK_ON_CACHE);

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Herhaal alles</string> <string name="exo_controls_repeat_all_description">Herhaal alles</string>
<string name="exo_controls_shuffle_description">Skommel</string> <string name="exo_controls_shuffle_description">Skommel</string>
<string name="exo_controls_fullscreen_description">Volskermmodus</string> <string name="exo_controls_fullscreen_description">Volskermmodus</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Aflaai</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Aflaaie</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Laai tans af</string>
<string name="exo_download_completed">Aflaai is voltooi</string> <string name="exo_download_completed">Aflaai is voltooi</string>
<string name="exo_download_failed">Kon nie aflaai nie</string> <string name="exo_download_failed">Kon nie aflaai nie</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Oudio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">SMS</string>
<string name="exo_track_selection_none">Geen</string> <string name="exo_track_selection_none">Geen</string>
<string name="exo_track_selection_auto">Outo</string> <string name="exo_track_selection_auto">Outo</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">ሁሉንም ድገም</string> <string name="exo_controls_repeat_all_description">ሁሉንም ድገም</string>
<string name="exo_controls_shuffle_description">በውዝ</string> <string name="exo_controls_shuffle_description">በውዝ</string>
<string name="exo_controls_fullscreen_description">የሙሉ ማያ ሁነታ</string> <string name="exo_controls_fullscreen_description">የሙሉ ማያ ሁነታ</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">አውርድ</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">የወረዱ</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">በማውረድ ላይ</string>
<string name="exo_download_completed">ማውረድ ተጠናቋል</string> <string name="exo_download_completed">ማውረድ ተጠናቋል</string>
<string name="exo_download_failed">ማውረድ አልተሳካም</string> <string name="exo_download_failed">ማውረድ አልተሳካም</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">ቪዲዮ</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">ኦዲዮ</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">ጽሑፍ</string>
<string name="exo_track_selection_none">ምንም</string> <string name="exo_track_selection_none">ምንም</string>
<string name="exo_track_selection_auto">ራስ-ሰር</string> <string name="exo_track_selection_auto">ራስ-ሰር</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">تكرار الكل</string> <string name="exo_controls_repeat_all_description">تكرار الكل</string>
<string name="exo_controls_shuffle_description">ترتيب عشوائي</string> <string name="exo_controls_shuffle_description">ترتيب عشوائي</string>
<string name="exo_controls_fullscreen_description">وضع ملء الشاشة</string> <string name="exo_controls_fullscreen_description">وضع ملء الشاشة</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">تنزيل</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">التنزيلات</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">جارٍ التنزيل.</string>
<string name="exo_download_completed">اكتمل التنزيل</string> <string name="exo_download_completed">اكتمل التنزيل</string>
<string name="exo_download_failed">تعذّر التنزيل</string> <string name="exo_download_failed">تعذّر التنزيل</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">فيديو</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">صوت</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">نص</string>
<string name="exo_track_selection_none">بدون اختيار</string> <string name="exo_track_selection_none">بدون اختيار</string>
<string name="exo_track_selection_auto">تلقائي</string> <string name="exo_track_selection_auto">تلقائي</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Hamısı təkrarlansın</string> <string name="exo_controls_repeat_all_description">Hamısı təkrarlansın</string>
<string name="exo_controls_shuffle_description">Qarışdırın</string> <string name="exo_controls_shuffle_description">Qarışdırın</string>
<string name="exo_controls_fullscreen_description">Tam ekran rejimi</string> <string name="exo_controls_fullscreen_description">Tam ekran rejimi</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Endirin</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Endirmələr</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Endirilir</string>
<string name="exo_download_completed">Endirmə tamamlandı</string> <string name="exo_download_completed">Endirmə tamamlandı</string>
<string name="exo_download_failed">Endirmə alınmadı</string> <string name="exo_download_failed">Endirmə alınmadı</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Mətn</string>
<string name="exo_track_selection_none">Yoxdur</string> <string name="exo_track_selection_none">Yoxdur</string>
<string name="exo_track_selection_auto">Avtomatik</string> <string name="exo_track_selection_auto">Avtomatik</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Повтаряне на всички</string> <string name="exo_controls_repeat_all_description">Повтаряне на всички</string>
<string name="exo_controls_shuffle_description">Разбъркване</string> <string name="exo_controls_shuffle_description">Разбъркване</string>
<string name="exo_controls_fullscreen_description">Режим на цял екран</string> <string name="exo_controls_fullscreen_description">Режим на цял екран</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Изтегляне</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Изтегляния</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Изтегля се</string>
<string name="exo_download_completed">Изтеглянето завърши</string> <string name="exo_download_completed">Изтеглянето завърши</string>
<string name="exo_download_failed">Изтеглянето не бе успешно</string> <string name="exo_download_failed">Изтеглянето не бе успешно</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Видеозапис</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Аудиозапис</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Текст</string>
<string name="exo_track_selection_none">Нищо</string> <string name="exo_track_selection_none">Нищо</string>
<string name="exo_track_selection_auto">Автоматично</string> <string name="exo_track_selection_auto">Автоматично</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Ponovi sve</string> <string name="exo_controls_repeat_all_description">Ponovi sve</string>
<string name="exo_controls_shuffle_description">Izmiješaj</string> <string name="exo_controls_shuffle_description">Izmiješaj</string>
<string name="exo_controls_fullscreen_description">Način rada preko cijelog ekrana</string> <string name="exo_controls_fullscreen_description">Način rada preko cijelog ekrana</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Preuzmi</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Preuzimanja</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Preuzimanje</string>
<string name="exo_download_completed">Preuzimanje je završeno</string> <string name="exo_download_completed">Preuzimanje je završeno</string>
<string name="exo_download_failed">Preuzimanje nije uspjelo</string> <string name="exo_download_failed">Preuzimanje nije uspjelo</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Videozapis</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Zvuk</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Tekst</string>
<string name="exo_track_selection_none">Ništa</string> <string name="exo_track_selection_none">Ništa</string>
<string name="exo_track_selection_auto">Automatski</string> <string name="exo_track_selection_auto">Automatski</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Repetir todo</string> <string name="exo_controls_repeat_all_description">Repetir todo</string>
<string name="exo_controls_shuffle_description">Reproducir aleatoriamente</string> <string name="exo_controls_shuffle_description">Reproducir aleatoriamente</string>
<string name="exo_controls_fullscreen_description">Modo de pantalla completa</string> <string name="exo_controls_fullscreen_description">Modo de pantalla completa</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Descargar</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Descargas</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Descargando</string>
<string name="exo_download_completed">Se completó la descarga</string> <string name="exo_download_completed">Se completó la descarga</string>
<string name="exo_download_failed">No se pudo descargar</string> <string name="exo_download_failed">No se pudo descargar</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Texto</string>
<string name="exo_track_selection_none">Ninguna</string> <string name="exo_track_selection_none">Ninguna</string>
<string name="exo_track_selection_auto">Automática</string> <string name="exo_track_selection_auto">Automática</string>
</resources> </resources>

View File

@ -20,6 +20,6 @@
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Text</string>
<string name="exo_track_selection_none">None</string> <string name="exo_track_selection_none">Ühtegi</string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">Automaatne</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Toista kaikki uudelleen</string> <string name="exo_controls_repeat_all_description">Toista kaikki uudelleen</string>
<string name="exo_controls_shuffle_description">Satunnaistoisto</string> <string name="exo_controls_shuffle_description">Satunnaistoisto</string>
<string name="exo_controls_fullscreen_description">Koko näytön tila</string> <string name="exo_controls_fullscreen_description">Koko näytön tila</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Lataa</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Lataukset</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Ladataan</string>
<string name="exo_download_completed">Lataus valmis</string> <string name="exo_download_completed">Lataus valmis</string>
<string name="exo_download_failed">Lataus epäonnistui</string> <string name="exo_download_failed">Lataus epäonnistui</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Ääni</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Teksti</string>
<string name="exo_track_selection_none"></string> <string name="exo_track_selection_none"></string>
<string name="exo_track_selection_auto">Automaattinen</string> <string name="exo_track_selection_auto">Automaattinen</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Tout lire en boucle</string> <string name="exo_controls_repeat_all_description">Tout lire en boucle</string>
<string name="exo_controls_shuffle_description">Lecture aléatoire</string> <string name="exo_controls_shuffle_description">Lecture aléatoire</string>
<string name="exo_controls_fullscreen_description">Mode Plein écran</string> <string name="exo_controls_fullscreen_description">Mode Plein écran</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Télécharger</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Téléchargements</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Téléchargement en cours…</string>
<string name="exo_download_completed">Téléchargement terminé</string> <string name="exo_download_completed">Téléchargement terminé</string>
<string name="exo_download_failed">Échec du téléchargement</string> <string name="exo_download_failed">Échec du téléchargement</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Vidéo</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Texte</string>
<string name="exo_track_selection_none">Aucun</string> <string name="exo_track_selection_none">Aucun</string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">Auto</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Tout lire en boucle</string> <string name="exo_controls_repeat_all_description">Tout lire en boucle</string>
<string name="exo_controls_shuffle_description">Aléatoire</string> <string name="exo_controls_shuffle_description">Aléatoire</string>
<string name="exo_controls_fullscreen_description">Mode plein écran</string> <string name="exo_controls_fullscreen_description">Mode plein écran</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Télécharger</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Téléchargements</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Téléchargement…</string>
<string name="exo_download_completed">Téléchargement terminé</string> <string name="exo_download_completed">Téléchargement terminé</string>
<string name="exo_download_failed">Échec du téléchargement</string> <string name="exo_download_failed">Échec du téléchargement</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Vidéo</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Texte</string>
<string name="exo_track_selection_none">Aucun</string> <string name="exo_track_selection_none">Aucun</string>
<string name="exo_track_selection_auto">Automatique</string> <string name="exo_track_selection_auto">Automatique</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Repetir todas as pistas</string> <string name="exo_controls_repeat_all_description">Repetir todas as pistas</string>
<string name="exo_controls_shuffle_description">Reprodución aleatoria</string> <string name="exo_controls_shuffle_description">Reprodución aleatoria</string>
<string name="exo_controls_fullscreen_description">Modo de pantalla completa</string> <string name="exo_controls_fullscreen_description">Modo de pantalla completa</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Descargar</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Descargas</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Descargando</string>
<string name="exo_download_completed">Completouse a descarga</string> <string name="exo_download_completed">Completouse a descarga</string>
<string name="exo_download_failed">Produciuse un erro na descarga</string> <string name="exo_download_failed">Produciuse un erro na descarga</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Vídeo</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Texto</string>
<string name="exo_track_selection_none">Ningunha pista</string> <string name="exo_track_selection_none">Ningunha pista</string>
<string name="exo_track_selection_auto">Pista automática</string> <string name="exo_track_selection_auto">Pista automática</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Ponovi sve</string> <string name="exo_controls_repeat_all_description">Ponovi sve</string>
<string name="exo_controls_shuffle_description">Reproduciraj nasumično</string> <string name="exo_controls_shuffle_description">Reproduciraj nasumično</string>
<string name="exo_controls_fullscreen_description">Prikaz na cijelom zaslonu</string> <string name="exo_controls_fullscreen_description">Prikaz na cijelom zaslonu</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Preuzmi</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Preuzimanja</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Preuzimanje</string>
<string name="exo_download_completed">Preuzimanje je dovršeno</string> <string name="exo_download_completed">Preuzimanje je dovršeno</string>
<string name="exo_download_failed">Preuzimanje nije uspjelo</string> <string name="exo_download_failed">Preuzimanje nije uspjelo</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Videozapis</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audiozapis</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Tekst</string>
<string name="exo_track_selection_none">Ništa</string> <string name="exo_track_selection_none">Ništa</string>
<string name="exo_track_selection_auto">Automatski</string> <string name="exo_track_selection_auto">Automatski</string>
</resources> </resources>

View File

@ -20,6 +20,6 @@
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Text</string>
<string name="exo_track_selection_none">None</string> <string name="exo_track_selection_none">Ոչ մեկը</string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">Ավտոմատ</string>
</resources> </resources>

View File

@ -13,13 +13,13 @@
<string name="exo_controls_shuffle_description">Acak</string> <string name="exo_controls_shuffle_description">Acak</string>
<string name="exo_controls_fullscreen_description">Mode layar penuh</string> <string name="exo_controls_fullscreen_description">Mode layar penuh</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Download</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Download</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Mendownload</string>
<string name="exo_download_completed">Download selesai</string> <string name="exo_download_completed">Download selesai</string>
<string name="exo_download_failed">Download gagal</string> <string name="exo_download_failed">Download gagal</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Teks</string>
<string name="exo_track_selection_none">Tidak ada</string> <string name="exo_track_selection_none">Tidak ada</string>
<string name="exo_track_selection_auto">Otomatis</string> <string name="exo_track_selection_auto">Otomatis</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Ripeti tutto</string> <string name="exo_controls_repeat_all_description">Ripeti tutto</string>
<string name="exo_controls_shuffle_description">Riproduzione casuale</string> <string name="exo_controls_shuffle_description">Riproduzione casuale</string>
<string name="exo_controls_fullscreen_description">Modalità a schermo intero</string> <string name="exo_controls_fullscreen_description">Modalità a schermo intero</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Scarica</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Download</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Download</string>
<string name="exo_download_completed">Download completato</string> <string name="exo_download_completed">Download completato</string>
<string name="exo_download_failed">Download non riuscito</string> <string name="exo_download_failed">Download non riuscito</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Testo</string>
<string name="exo_track_selection_none">Nessuno</string> <string name="exo_track_selection_none">Nessuno</string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">Auto</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">全曲をリピート</string> <string name="exo_controls_repeat_all_description">全曲をリピート</string>
<string name="exo_controls_shuffle_description">シャッフル</string> <string name="exo_controls_shuffle_description">シャッフル</string>
<string name="exo_controls_fullscreen_description">全画面モード</string> <string name="exo_controls_fullscreen_description">全画面モード</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">ダウンロード</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">ダウンロード</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">ダウンロードしています</string>
<string name="exo_download_completed">ダウンロードが完了しました</string> <string name="exo_download_completed">ダウンロードが完了しました</string>
<string name="exo_download_failed">ダウンロードに失敗しました</string> <string name="exo_download_failed">ダウンロードに失敗しました</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">動画</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">音声</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">SMS</string>
<string name="exo_track_selection_none">なし</string> <string name="exo_track_selection_none">なし</string>
<string name="exo_track_selection_auto">自動</string> <string name="exo_track_selection_auto">自動</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">ყველას გამეორება</string> <string name="exo_controls_repeat_all_description">ყველას გამეორება</string>
<string name="exo_controls_shuffle_description">არეულად დაკვრა</string> <string name="exo_controls_shuffle_description">არეულად დაკვრა</string>
<string name="exo_controls_fullscreen_description">სრულეკრანიანი რეჟიმი</string> <string name="exo_controls_fullscreen_description">სრულეკრანიანი რეჟიმი</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">ჩამოტვირთვა</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">ჩამოტვირთვები</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">მიმდინარეობს ჩამოტვირთვა</string>
<string name="exo_download_completed">ჩამოტვირთვა დასრულდა</string> <string name="exo_download_completed">ჩამოტვირთვა დასრულდა</string>
<string name="exo_download_failed">ჩამოტვირთვა ვერ მოხერხდა</string> <string name="exo_download_failed">ჩამოტვირთვა ვერ მოხერხდა</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">ვიდეო</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">აუდიო</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">SMS</string>
<string name="exo_track_selection_none">არცერთი</string> <string name="exo_track_selection_none">არცერთი</string>
<string name="exo_track_selection_auto">ავტომატური</string> <string name="exo_track_selection_auto">ავტომატური</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">លេង​ឡើងវិញ​ទាំងអស់</string> <string name="exo_controls_repeat_all_description">លេង​ឡើងវិញ​ទាំងអស់</string>
<string name="exo_controls_shuffle_description">ច្របល់</string> <string name="exo_controls_shuffle_description">ច្របល់</string>
<string name="exo_controls_fullscreen_description">មុខងារពេញ​អេក្រង់</string> <string name="exo_controls_fullscreen_description">មុខងារពេញ​អេក្រង់</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">ទាញយក</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">ទាញយក</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">កំពុង​ទាញ​យក</string>
<string name="exo_download_completed">បាន​បញ្ចប់​ការទាញយក</string> <string name="exo_download_completed">បាន​បញ្ចប់​ការទាញយក</string>
<string name="exo_download_failed">មិន​អាច​ទាញយក​បាន​ទេ</string> <string name="exo_download_failed">មិន​អាច​ទាញយក​បាន​ទេ</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">វីដេអូ</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">សំឡេង</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">អក្សរ</string>
<string name="exo_track_selection_none">គ្មាន</string> <string name="exo_track_selection_none">គ្មាន</string>
<string name="exo_track_selection_auto">ស្វ័យប្រវត្តិ</string> <string name="exo_track_selection_auto">ស្វ័យប្រវត្តិ</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">모두 반복</string> <string name="exo_controls_repeat_all_description">모두 반복</string>
<string name="exo_controls_shuffle_description">셔플</string> <string name="exo_controls_shuffle_description">셔플</string>
<string name="exo_controls_fullscreen_description">전체화면 모드</string> <string name="exo_controls_fullscreen_description">전체화면 모드</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">다운로드</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">다운로드</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">다운로드 중</string>
<string name="exo_download_completed">다운로드 완료</string> <string name="exo_download_completed">다운로드 완료</string>
<string name="exo_download_failed">다운로드 실패</string> <string name="exo_download_failed">다운로드 실패</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">동영상</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">오디오</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">문자 메시지</string>
<string name="exo_track_selection_none">없음</string> <string name="exo_track_selection_none">없음</string>
<string name="exo_track_selection_auto">자동</string> <string name="exo_track_selection_auto">자동</string>
</resources> </resources>

View File

@ -20,6 +20,6 @@
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Text</string>
<string name="exo_track_selection_none">None</string> <string name="exo_track_selection_none">Nėra</string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">Automatinė</string>
</resources> </resources>

View File

@ -20,6 +20,6 @@
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Text</string>
<string name="exo_track_selection_none">None</string> <string name="exo_track_selection_none">Nav</string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">Automātisks</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Повтори ги сите</string> <string name="exo_controls_repeat_all_description">Повтори ги сите</string>
<string name="exo_controls_shuffle_description">Измешај</string> <string name="exo_controls_shuffle_description">Измешај</string>
<string name="exo_controls_fullscreen_description">Режим на цел екран</string> <string name="exo_controls_fullscreen_description">Режим на цел екран</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Преземи</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Преземања</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Се презема</string>
<string name="exo_download_completed">Преземањето заврши</string> <string name="exo_download_completed">Преземањето заврши</string>
<string name="exo_download_failed">Неуспешно преземање</string> <string name="exo_download_failed">Неуспешно преземање</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Видео</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Аудио</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Текст</string>
<string name="exo_track_selection_none">Нема</string> <string name="exo_track_selection_none">Нема</string>
<string name="exo_track_selection_auto">Автоматскa</string> <string name="exo_track_selection_auto">Автоматскa</string>
</resources> </resources>

View File

@ -20,6 +20,6 @@
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Text</string>
<string name="exo_track_selection_none">None</string> <string name="exo_track_selection_none">ഒന്നുമില്ല</string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">സ്വമേധയാ</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Бүгдийг нь дахин тоглуулах</string> <string name="exo_controls_repeat_all_description">Бүгдийг нь дахин тоглуулах</string>
<string name="exo_controls_shuffle_description">Холих</string> <string name="exo_controls_shuffle_description">Холих</string>
<string name="exo_controls_fullscreen_description">Бүтэн дэлгэцийн горим</string> <string name="exo_controls_fullscreen_description">Бүтэн дэлгэцийн горим</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Татах</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Татaлт</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Татаж байна</string>
<string name="exo_download_completed">Татаж дууссан</string> <string name="exo_download_completed">Татаж дууссан</string>
<string name="exo_download_failed">Татаж чадсангүй</string> <string name="exo_download_failed">Татаж чадсангүй</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Видео</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Дуу</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Текст</string>
<string name="exo_track_selection_none">Байхгүй</string> <string name="exo_track_selection_none">Байхгүй</string>
<string name="exo_track_selection_auto">Автомат</string> <string name="exo_track_selection_auto">Автомат</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">အားလုံး ပြန်ကျော့ရန်</string> <string name="exo_controls_repeat_all_description">အားလုံး ပြန်ကျော့ရန်</string>
<string name="exo_controls_shuffle_description">ရောသမမွှေ</string> <string name="exo_controls_shuffle_description">ရောသမမွှေ</string>
<string name="exo_controls_fullscreen_description">မျက်နှာပြင်အပြည့် မုဒ်</string> <string name="exo_controls_fullscreen_description">မျက်နှာပြင်အပြည့် မုဒ်</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">ဒေါင်းလုဒ် လုပ်ရန်</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">ဒေါင်းလုဒ်များ</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">ဒေါင်းလုဒ်လုပ်နေသည်</string>
<string name="exo_download_completed">ဒေါင်းလုဒ်လုပ်ပြီးပါပြီ</string> <string name="exo_download_completed">ဒေါင်းလုဒ်လုပ်ပြီးပါပြီ</string>
<string name="exo_download_failed">ဒေါင်းလုဒ်လုပ်၍ မရပါ</string> <string name="exo_download_failed">ဒေါင်းလုဒ်လုပ်၍ မရပါ</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">ဗီဒီယို</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">အသံ</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">စာသား</string>
<string name="exo_track_selection_none">မရှိ</string> <string name="exo_track_selection_none">မရှိ</string>
<string name="exo_track_selection_auto">အလိုအလျောက်</string> <string name="exo_track_selection_auto">အလိုအလျောက်</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Alles herhalen</string> <string name="exo_controls_repeat_all_description">Alles herhalen</string>
<string name="exo_controls_shuffle_description">Shuffle</string> <string name="exo_controls_shuffle_description">Shuffle</string>
<string name="exo_controls_fullscreen_description">Modus \'Volledig scherm\'</string> <string name="exo_controls_fullscreen_description">Modus \'Volledig scherm\'</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Downloaden</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Downloads</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Downloaden</string>
<string name="exo_download_completed">Downloaden voltooid</string> <string name="exo_download_completed">Downloaden voltooid</string>
<string name="exo_download_failed">Downloaden mislukt</string> <string name="exo_download_failed">Downloaden mislukt</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Tekst</string>
<string name="exo_track_selection_none">Geen</string> <string name="exo_track_selection_none">Geen</string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">Auto</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Repetir tudo</string> <string name="exo_controls_repeat_all_description">Repetir tudo</string>
<string name="exo_controls_shuffle_description">Reproduzir aleatoriamente</string> <string name="exo_controls_shuffle_description">Reproduzir aleatoriamente</string>
<string name="exo_controls_fullscreen_description">Modo de ecrã inteiro</string> <string name="exo_controls_fullscreen_description">Modo de ecrã inteiro</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Transferir</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Transferências</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">A transferir…</string>
<string name="exo_download_completed">Transferência concluída</string> <string name="exo_download_completed">Transferência concluída</string>
<string name="exo_download_failed">Falha na transferência</string> <string name="exo_download_failed">Falha na transferência</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Vídeo</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Áudio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Texto</string>
<string name="exo_track_selection_none">Nenhuma</string> <string name="exo_track_selection_none">Nenhuma</string>
<string name="exo_track_selection_auto">Automático</string> <string name="exo_track_selection_auto">Automático</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Repetir tudo</string> <string name="exo_controls_repeat_all_description">Repetir tudo</string>
<string name="exo_controls_shuffle_description">Aleatório</string> <string name="exo_controls_shuffle_description">Aleatório</string>
<string name="exo_controls_fullscreen_description">Modo de tela cheia</string> <string name="exo_controls_fullscreen_description">Modo de tela cheia</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Fazer o download</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Downloads</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Fazendo o download</string>
<string name="exo_download_completed">Download concluído</string> <string name="exo_download_completed">Download concluído</string>
<string name="exo_download_failed">Falha no download</string> <string name="exo_download_failed">Falha no download</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Vídeo</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Áudio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Texto</string>
<string name="exo_track_selection_none">Nenhuma</string> <string name="exo_track_selection_none">Nenhuma</string>
<string name="exo_track_selection_auto">Automática</string> <string name="exo_track_selection_auto">Automática</string>
</resources> </resources>

View File

@ -12,9 +12,9 @@
<string name="exo_controls_repeat_all_description">Repetați-le pe toate</string> <string name="exo_controls_repeat_all_description">Repetați-le pe toate</string>
<string name="exo_controls_shuffle_description">Redați aleatoriu</string> <string name="exo_controls_shuffle_description">Redați aleatoriu</string>
<string name="exo_controls_fullscreen_description">Modul Ecran complet</string> <string name="exo_controls_fullscreen_description">Modul Ecran complet</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Descărcați</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Descărcări</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Se descarcă</string>
<string name="exo_download_completed">Descărcarea a fost finalizată</string> <string name="exo_download_completed">Descărcarea a fost finalizată</string>
<string name="exo_download_failed">Descărcarea nu a reușit</string> <string name="exo_download_failed">Descărcarea nu a reușit</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>

View File

@ -12,13 +12,13 @@
<string name="exo_controls_repeat_all_description">Opakovať všetko</string> <string name="exo_controls_repeat_all_description">Opakovať všetko</string>
<string name="exo_controls_shuffle_description">Náhodne prehrávať</string> <string name="exo_controls_shuffle_description">Náhodne prehrávať</string>
<string name="exo_controls_fullscreen_description">Režim celej obrazovky</string> <string name="exo_controls_fullscreen_description">Režim celej obrazovky</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Stiahnuť</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Stiahnuté</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Sťahuje sa</string>
<string name="exo_download_completed">Sťahovanie bolo dokončené</string> <string name="exo_download_completed">Sťahovanie bolo dokončené</string>
<string name="exo_download_failed">Nepodarilo sa stiahnuť</string> <string name="exo_download_failed">Nepodarilo sa stiahnuť</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Zvuk</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Text</string>
<string name="exo_track_selection_none">Žiadne</string> <string name="exo_track_selection_none">Žiadne</string>
<string name="exo_track_selection_auto">Automaticky</string> <string name="exo_track_selection_auto">Automaticky</string>

View File

@ -12,13 +12,13 @@
<string name="exo_controls_repeat_all_description">Upprepa alla</string> <string name="exo_controls_repeat_all_description">Upprepa alla</string>
<string name="exo_controls_shuffle_description">Blanda spår</string> <string name="exo_controls_shuffle_description">Blanda spår</string>
<string name="exo_controls_fullscreen_description">Helskärmsläge</string> <string name="exo_controls_fullscreen_description">Helskärmsläge</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Ladda ned</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Nedladdningar</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Laddar ned</string>
<string name="exo_download_completed">Nedladdningen är klar</string> <string name="exo_download_completed">Nedladdningen är klar</string>
<string name="exo_download_failed">Nedladdningen misslyckades</string> <string name="exo_download_failed">Nedladdningen misslyckades</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Ljud</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Text</string>
<string name="exo_track_selection_none">Ingen</string> <string name="exo_track_selection_none">Ingen</string>
<string name="exo_track_selection_auto">Automatiskt</string> <string name="exo_track_selection_auto">Automatiskt</string>

View File

@ -20,6 +20,6 @@
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Text</string>
<string name="exo_track_selection_none">None</string> <string name="exo_track_selection_none">ఏదీ కాదు</string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">స్వీయ</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">เล่นซ้ำทั้งหมด</string> <string name="exo_controls_repeat_all_description">เล่นซ้ำทั้งหมด</string>
<string name="exo_controls_shuffle_description">สุ่ม</string> <string name="exo_controls_shuffle_description">สุ่ม</string>
<string name="exo_controls_fullscreen_description">โหมดเต็มหน้าจอ</string> <string name="exo_controls_fullscreen_description">โหมดเต็มหน้าจอ</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">ดาวน์โหลด</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">ดาวน์โหลด</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">กำลังดาวน์โหลด</string>
<string name="exo_download_completed">การดาวน์โหลดเสร็จสมบูรณ์</string> <string name="exo_download_completed">การดาวน์โหลดเสร็จสมบูรณ์</string>
<string name="exo_download_failed">การดาวน์โหลดล้มเหลว</string> <string name="exo_download_failed">การดาวน์โหลดล้มเหลว</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">วิดีโอ</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">เสียง</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">ข้อความ</string>
<string name="exo_track_selection_none">ไม่มี</string> <string name="exo_track_selection_none">ไม่มี</string>
<string name="exo_track_selection_auto">ยานยนต์</string> <string name="exo_track_selection_auto">ยานยนต์</string>
</resources> </resources>

View File

@ -12,9 +12,9 @@
<string name="exo_controls_repeat_all_description">Ulitin lahat</string> <string name="exo_controls_repeat_all_description">Ulitin lahat</string>
<string name="exo_controls_shuffle_description">I-shuffle</string> <string name="exo_controls_shuffle_description">I-shuffle</string>
<string name="exo_controls_fullscreen_description">Fullscreen mode</string> <string name="exo_controls_fullscreen_description">Fullscreen mode</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">I-download</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Mga Download</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Nagda-download</string>
<string name="exo_download_completed">Tapos na ang pag-download</string> <string name="exo_download_completed">Tapos na ang pag-download</string>
<string name="exo_download_failed">Hindi na-download</string> <string name="exo_download_failed">Hindi na-download</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Tümünü tekrarla</string> <string name="exo_controls_repeat_all_description">Tümünü tekrarla</string>
<string name="exo_controls_shuffle_description">Karıştır</string> <string name="exo_controls_shuffle_description">Karıştır</string>
<string name="exo_controls_fullscreen_description">Tam ekran modu</string> <string name="exo_controls_fullscreen_description">Tam ekran modu</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">İndir</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">İndirilenler</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">İndiriliyor</string>
<string name="exo_download_completed">İndirme işlemi tamamlandı</string> <string name="exo_download_completed">İndirme işlemi tamamlandı</string>
<string name="exo_download_failed">İndirilemedi</string> <string name="exo_download_failed">İndirilemedi</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Ses</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Metin</string>
<string name="exo_track_selection_none">Yok</string> <string name="exo_track_selection_none">Yok</string>
<string name="exo_track_selection_auto">Otomatik</string> <string name="exo_track_selection_auto">Otomatik</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Повторити всі</string> <string name="exo_controls_repeat_all_description">Повторити всі</string>
<string name="exo_controls_shuffle_description">Перемішати</string> <string name="exo_controls_shuffle_description">Перемішати</string>
<string name="exo_controls_fullscreen_description">Повноекранний режим</string> <string name="exo_controls_fullscreen_description">Повноекранний режим</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Завантажити</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Завантаження</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Завантажується</string>
<string name="exo_download_completed">Завантаження завершено</string> <string name="exo_download_completed">Завантаження завершено</string>
<string name="exo_download_failed">Не вдалося завантажити</string> <string name="exo_download_failed">Не вдалося завантажити</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Відео</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Аудіо</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Текст</string>
<string name="exo_track_selection_none">Нічого</string> <string name="exo_track_selection_none">Нічого</string>
<string name="exo_track_selection_auto">Автоматично</string> <string name="exo_track_selection_auto">Автоматично</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Hammasini takrorlash</string> <string name="exo_controls_repeat_all_description">Hammasini takrorlash</string>
<string name="exo_controls_shuffle_description">Aralash</string> <string name="exo_controls_shuffle_description">Aralash</string>
<string name="exo_controls_fullscreen_description">Butun ekran rejimi</string> <string name="exo_controls_fullscreen_description">Butun ekran rejimi</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Saqlash</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Yuklanmalar</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Yuklab olish</string>
<string name="exo_download_completed">Yuklab olindi</string> <string name="exo_download_completed">Yuklab olindi</string>
<string name="exo_download_failed">Yuklab olinmadi</string> <string name="exo_download_failed">Yuklab olinmadi</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Matn</string>
<string name="exo_track_selection_none">Hech biri</string> <string name="exo_track_selection_none">Hech biri</string>
<string name="exo_track_selection_auto">Avtomatik</string> <string name="exo_track_selection_auto">Avtomatik</string>
</resources> </resources>

View File

@ -20,6 +20,6 @@
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Video</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Audio</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Text</string>
<string name="exo_track_selection_none">None</string> <string name="exo_track_selection_none"></string>
<string name="exo_track_selection_auto">Auto</string> <string name="exo_track_selection_auto">自动</string>
</resources> </resources>

View File

@ -12,14 +12,14 @@
<string name="exo_controls_repeat_all_description">Phinda konke</string> <string name="exo_controls_repeat_all_description">Phinda konke</string>
<string name="exo_controls_shuffle_description">Shova</string> <string name="exo_controls_shuffle_description">Shova</string>
<string name="exo_controls_fullscreen_description">Imodi yesikrini esigcwele</string> <string name="exo_controls_fullscreen_description">Imodi yesikrini esigcwele</string>
<string name="exo_download_description">Download</string> <string name="exo_download_description">Landa</string>
<string name="exo_download_notification_channel_name">Downloads</string> <string name="exo_download_notification_channel_name">Ukulandwa</string>
<string name="exo_download_downloading">Downloading</string> <string name="exo_download_downloading">Iyalanda</string>
<string name="exo_download_completed">Ukulanda kuqedile</string> <string name="exo_download_completed">Ukulanda kuqedile</string>
<string name="exo_download_failed">Ukulanda kuhlulekile</string> <string name="exo_download_failed">Ukulanda kuhlulekile</string>
<string name="exo_track_selection_title_video">Video</string> <string name="exo_track_selection_title_video">Ividiyo</string>
<string name="exo_track_selection_title_audio">Audio</string> <string name="exo_track_selection_title_audio">Umsindo</string>
<string name="exo_track_selection_title_text">Text</string> <string name="exo_track_selection_title_text">Umbhalo</string>
<string name="exo_track_selection_none">Lutho</string> <string name="exo_track_selection_none">Lutho</string>
<string name="exo_track_selection_auto">Okuzenzakalelayo</string> <string name="exo_track_selection_auto">Okuzenzakalelayo</string>
</resources> </resources>

View File

@ -20,9 +20,6 @@ import static com.google.common.truth.Truth.assertWithMessage;
import android.net.Uri; import android.net.Uri;
import android.test.ActivityInstrumentationTestCase2; import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import com.google.android.exoplayer2.offline.Downloader;
import com.google.android.exoplayer2.offline.Downloader.ProgressListener;
import com.google.android.exoplayer2.offline.DownloaderConstructorHelper; import com.google.android.exoplayer2.offline.DownloaderConstructorHelper;
import com.google.android.exoplayer2.source.dash.manifest.AdaptationSet; import com.google.android.exoplayer2.source.dash.manifest.AdaptationSet;
import com.google.android.exoplayer2.source.dash.manifest.DashManifest; import com.google.android.exoplayer2.source.dash.manifest.DashManifest;
@ -87,11 +84,11 @@ public final class DashDownloadTest extends ActivityInstrumentationTestCase2<Hos
} }
// Download manifest only // Download manifest only
createDashDownloader(false).getManifest(); createDashDownloader().getManifest();
long manifestLength = cache.getCacheSpace(); long manifestLength = cache.getCacheSpace();
// Download representations // Download representations
DashDownloader dashDownloader = downloadContent(false, Float.NaN); DashDownloader dashDownloader = downloadContent();
assertThat(dashDownloader.getDownloadedBytes()) assertThat(dashDownloader.getDownloadedBytes())
.isEqualTo(cache.getCacheSpace() - manifestLength); .isEqualTo(cache.getCacheSpace() - manifestLength);
@ -104,28 +101,8 @@ public final class DashDownloadTest extends ActivityInstrumentationTestCase2<Hos
assertWithMessage("There should be no content left").that(cache.getCacheSpace()).isEqualTo(0); assertWithMessage("There should be no content left").that(cache.getCacheSpace()).isEqualTo(0);
} }
public void testPartialDownload() throws Exception { private DashDownloader downloadContent() throws Exception {
if (Util.SDK_INT < 16) { DashDownloader dashDownloader = createDashDownloader();
return; // Pass.
}
// Just download the first half and manifest
downloadContent(false, 0.5f);
// Download the rest
DashDownloader dashDownloader = downloadContent(false, Float.NaN);
long downloadedBytes = dashDownloader.getDownloadedBytes();
// Make sure it doesn't download any data
dashDownloader = downloadContent(true, Float.NaN);
assertThat(dashDownloader.getDownloadedBytes()).isEqualTo(downloadedBytes);
testRunner.setStreamName("test_h264_fixed_partial_download")
.setDataSourceFactory(newOfflineCacheDataSourceFactory()).run();
}
private DashDownloader downloadContent(boolean offline, float stopAt) throws Exception {
DashDownloader dashDownloader = createDashDownloader(offline);
DashManifest dashManifest = dashDownloader.getManifest(); DashManifest dashManifest = dashDownloader.getManifest();
try { try {
ArrayList<RepresentationKey> keys = new ArrayList<>(); ArrayList<RepresentationKey> keys = new ArrayList<>();
@ -143,8 +120,7 @@ public final class DashDownloadTest extends ActivityInstrumentationTestCase2<Hos
} }
} }
dashDownloader.selectRepresentations(keys.toArray(new RepresentationKey[keys.size()])); dashDownloader.selectRepresentations(keys.toArray(new RepresentationKey[keys.size()]));
TestProgressListener listener = new TestProgressListener(stopAt); dashDownloader.download();
dashDownloader.download(listener);
} }
} catch (InterruptedException e) { } catch (InterruptedException e) {
// do nothing // do nothing
@ -161,9 +137,9 @@ public final class DashDownloadTest extends ActivityInstrumentationTestCase2<Hos
return dashDownloader; return dashDownloader;
} }
private DashDownloader createDashDownloader(boolean offline) { private DashDownloader createDashDownloader() {
DownloaderConstructorHelper constructorHelper = new DownloaderConstructorHelper(cache, DownloaderConstructorHelper constructorHelper =
offline ? DummyDataSource.FACTORY : new DefaultHttpDataSourceFactory("ExoPlayer", null)); new DownloaderConstructorHelper(cache, new DefaultHttpDataSourceFactory("ExoPlayer", null));
return new DashDownloader(Uri.parse(DashTestData.H264_MANIFEST), constructorHelper); return new DashDownloader(Uri.parse(DashTestData.H264_MANIFEST), constructorHelper);
} }
@ -172,25 +148,4 @@ public final class DashDownloadTest extends ActivityInstrumentationTestCase2<Hos
CacheDataSource.FLAG_BLOCK_ON_CACHE); CacheDataSource.FLAG_BLOCK_ON_CACHE);
} }
private static class TestProgressListener implements ProgressListener {
private final float stopAt;
private TestProgressListener(float stopAt) {
this.stopAt = stopAt;
}
@Override
public void onDownloadProgress(Downloader downloader, float downloadPercentage,
long downloadedBytes) {
Log.d("DashDownloadTest",
String.format("onDownloadProgress downloadPercentage = [%g], downloadedData = [%d]%n",
downloadPercentage, downloadedBytes));
if (downloadPercentage >= stopAt) {
Thread.currentThread().interrupt();
}
}
}
} }