Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
6a6b2112
authored
Dec 10, 2018
by
tonihei
Committed by
Andrew Lewis
Dec 10, 2018
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Update DownloadHelper constructors and their usage in the demo app.
PiperOrigin-RevId: 224797598
parent
a02dba21
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
216 additions
and
49 deletions
demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoApplication.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java
library/core/src/main/java/com/google/android/exoplayer2/offline/ProgressiveDownloadHelper.java
library/dash/src/main/java/com/google/android/exoplayer2/source/dash/offline/DashDownloadHelper.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/offline/HlsDownloadHelper.java
library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloadHelper.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoApplication.java
View file @
6a6b2112
...
...
@@ -16,6 +16,8 @@
package
com
.
google
.
android
.
exoplayer2
.
demo
;
import
android.app.Application
;
import
com.google.android.exoplayer2.DefaultRenderersFactory
;
import
com.google.android.exoplayer2.RenderersFactory
;
import
com.google.android.exoplayer2.offline.DefaultDownloaderFactory
;
import
com.google.android.exoplayer2.offline.DownloadManager
;
import
com.google.android.exoplayer2.offline.DownloaderConstructorHelper
;
...
...
@@ -72,6 +74,17 @@ public class DemoApplication extends Application {
return
"withExtensions"
.
equals
(
BuildConfig
.
FLAVOR
);
}
public
RenderersFactory
buildRenderersFactory
(
boolean
preferExtensionRenderer
)
{
@DefaultRenderersFactory
.
ExtensionRendererMode
int
extensionRendererMode
=
useExtensionRenderers
()
?
(
preferExtensionRenderer
?
DefaultRenderersFactory
.
EXTENSION_RENDERER_MODE_PREFER
:
DefaultRenderersFactory
.
EXTENSION_RENDERER_MODE_ON
)
:
DefaultRenderersFactory
.
EXTENSION_RENDERER_MODE_OFF
;
return
new
DefaultRenderersFactory
(
this
,
extensionRendererMode
);
}
public
DownloadManager
getDownloadManager
()
{
initDownloadManager
();
return
downloadManager
;
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java
View file @
6a6b2112
...
...
@@ -28,6 +28,7 @@ import android.widget.ArrayAdapter;
import
android.widget.ListView
;
import
android.widget.Toast
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.RenderersFactory
;
import
com.google.android.exoplayer2.offline.ActionFile
;
import
com.google.android.exoplayer2.offline.DownloadAction
;
import
com.google.android.exoplayer2.offline.DownloadHelper
;
...
...
@@ -114,13 +115,20 @@ public class DownloadTracker implements DownloadManager.Listener {
return
trackedDownloadStates
.
get
(
uri
).
getKeys
();
}
public
void
toggleDownload
(
Activity
activity
,
String
name
,
Uri
uri
,
String
extension
)
{
public
void
toggleDownload
(
Activity
activity
,
String
name
,
Uri
uri
,
String
extension
,
RenderersFactory
renderersFactory
)
{
if
(
isDownloaded
(
uri
))
{
DownloadAction
removeAction
=
getDownloadHelper
(
uri
,
extension
).
getRemoveAction
();
DownloadAction
removeAction
=
getDownloadHelper
(
uri
,
extension
,
renderersFactory
).
getRemoveAction
();
startServiceWithAction
(
removeAction
);
}
else
{
StartDownloadDialogHelper
helper
=
new
StartDownloadDialogHelper
(
activity
,
getDownloadHelper
(
uri
,
extension
),
name
);
new
StartDownloadDialogHelper
(
activity
,
getDownloadHelper
(
uri
,
extension
,
renderersFactory
),
name
);
helper
.
prepare
();
}
}
...
...
@@ -192,15 +200,16 @@ public class DownloadTracker implements DownloadManager.Listener {
DownloadService
.
startWithAction
(
context
,
DemoDownloadService
.
class
,
action
,
false
);
}
private
DownloadHelper
getDownloadHelper
(
Uri
uri
,
String
extension
)
{
private
DownloadHelper
<?>
getDownloadHelper
(
Uri
uri
,
String
extension
,
RenderersFactory
renderersFactory
)
{
int
type
=
Util
.
inferContentType
(
uri
,
extension
);
switch
(
type
)
{
case
C
.
TYPE_DASH
:
return
new
DashDownloadHelper
(
uri
,
dataSourceFactory
);
return
new
DashDownloadHelper
(
uri
,
dataSourceFactory
,
renderersFactory
);
case
C
.
TYPE_SS
:
return
new
SsDownloadHelper
(
uri
,
dataSourceFactory
);
return
new
SsDownloadHelper
(
uri
,
dataSourceFactory
,
renderersFactory
);
case
C
.
TYPE_HLS
:
return
new
HlsDownloadHelper
(
uri
,
dataSourceFactory
);
return
new
HlsDownloadHelper
(
uri
,
dataSourceFactory
,
renderersFactory
);
case
C
.
TYPE_OTHER
:
return
new
ProgressiveDownloadHelper
(
uri
);
default
:
...
...
@@ -211,7 +220,7 @@ public class DownloadTracker implements DownloadManager.Listener {
private
final
class
StartDownloadDialogHelper
implements
DownloadHelper
.
Callback
,
DialogInterface
.
OnClickListener
{
private
final
DownloadHelper
downloadHelper
;
private
final
DownloadHelper
<?>
downloadHelper
;
private
final
String
name
;
private
final
AlertDialog
.
Builder
builder
;
...
...
@@ -221,7 +230,7 @@ public class DownloadTracker implements DownloadManager.Listener {
private
final
ListView
representationList
;
public
StartDownloadDialogHelper
(
Activity
activity
,
DownloadHelper
downloadHelper
,
String
name
)
{
Activity
activity
,
DownloadHelper
<?>
downloadHelper
,
String
name
)
{
this
.
downloadHelper
=
downloadHelper
;
this
.
name
=
name
;
builder
=
...
...
@@ -248,7 +257,7 @@ public class DownloadTracker implements DownloadManager.Listener {
}
@Override
public
void
onPrepared
(
DownloadHelper
helper
)
{
public
void
onPrepared
(
DownloadHelper
<?>
helper
)
{
for
(
int
i
=
0
;
i
<
downloadHelper
.
getPeriodCount
();
i
++)
{
TrackGroupArray
trackGroups
=
downloadHelper
.
getTrackGroups
(
i
);
for
(
int
j
=
0
;
j
<
trackGroups
.
length
;
j
++)
{
...
...
@@ -266,7 +275,7 @@ public class DownloadTracker implements DownloadManager.Listener {
}
@Override
public
void
onPrepareError
(
DownloadHelper
helper
,
IOException
e
)
{
public
void
onPrepareError
(
DownloadHelper
<?>
helper
,
IOException
e
)
{
Toast
.
makeText
(
context
.
getApplicationContext
(),
R
.
string
.
download_start_error
,
Toast
.
LENGTH_LONG
)
.
show
();
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
View file @
6a6b2112
...
...
@@ -35,11 +35,11 @@ import android.widget.TextView;
import
android.widget.Toast
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.C.ContentType
;
import
com.google.android.exoplayer2.DefaultRenderersFactory
;
import
com.google.android.exoplayer2.ExoPlaybackException
;
import
com.google.android.exoplayer2.ExoPlayerFactory
;
import
com.google.android.exoplayer2.PlaybackPreparer
;
import
com.google.android.exoplayer2.Player
;
import
com.google.android.exoplayer2.RenderersFactory
;
import
com.google.android.exoplayer2.SimpleExoPlayer
;
import
com.google.android.exoplayer2.drm.DefaultDrmSessionManager
;
import
com.google.android.exoplayer2.drm.FrameworkMediaCrypto
;
...
...
@@ -416,13 +416,8 @@ public class PlayerActivity extends Activity
boolean
preferExtensionDecoders
=
intent
.
getBooleanExtra
(
PREFER_EXTENSION_DECODERS_EXTRA
,
false
);
@DefaultRenderersFactory
.
ExtensionRendererMode
int
extensionRendererMode
=
((
DemoApplication
)
getApplication
()).
useExtensionRenderers
()
?
(
preferExtensionDecoders
?
DefaultRenderersFactory
.
EXTENSION_RENDERER_MODE_PREFER
:
DefaultRenderersFactory
.
EXTENSION_RENDERER_MODE_ON
)
:
DefaultRenderersFactory
.
EXTENSION_RENDERER_MODE_OFF
;
DefaultRenderersFactory
renderersFactory
=
new
DefaultRenderersFactory
(
this
,
extensionRendererMode
);
RenderersFactory
renderersFactory
=
((
DemoApplication
)
getApplication
()).
buildRenderersFactory
(
preferExtensionDecoders
);
trackSelector
=
new
DefaultTrackSelector
(
trackSelectionFactory
);
trackSelector
.
setParameters
(
trackSelectorParameters
);
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
View file @
6a6b2112
...
...
@@ -37,6 +37,7 @@ import android.widget.ImageButton;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
com.google.android.exoplayer2.ParserException
;
import
com.google.android.exoplayer2.RenderersFactory
;
import
com.google.android.exoplayer2.offline.DownloadService
;
import
com.google.android.exoplayer2.upstream.DataSource
;
import
com.google.android.exoplayer2.upstream.DataSourceInputStream
;
...
...
@@ -177,7 +178,11 @@ public class SampleChooserActivity extends Activity
.
show
();
}
else
{
UriSample
uriSample
=
(
UriSample
)
sample
;
downloadTracker
.
toggleDownload
(
this
,
sample
.
name
,
uriSample
.
uri
,
uriSample
.
extension
);
RenderersFactory
renderersFactory
=
((
DemoApplication
)
getApplication
())
.
buildRenderersFactory
(
isNonNullAndChecked
(
preferExtensionDecodersMenuItem
));
downloadTracker
.
toggleDownload
(
this
,
sample
.
name
,
uriSample
.
uri
,
uriSample
.
extension
,
renderersFactory
);
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java
View file @
6a6b2112
...
...
@@ -22,7 +22,6 @@ import android.support.annotation.Nullable;
import
android.util.SparseIntArray
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.ExoPlaybackException
;
import
com.google.android.exoplayer2.Renderer
;
import
com.google.android.exoplayer2.RendererCapabilities
;
import
com.google.android.exoplayer2.RenderersFactory
;
import
com.google.android.exoplayer2.Timeline
;
...
...
@@ -114,25 +113,6 @@ public abstract class DownloadHelper<T> {
private
List
<
TrackSelection
>
@MonotonicNonNull
[][]
immutableTrackSelectionsByPeriodAndRenderer
;
/**
* Create download helper.
*
* @param downloadType A download type. This value will be used as {@link DownloadAction#type}.
* @param uri A {@link Uri}.
* @param cacheKey An optional cache key.
*/
public
DownloadHelper
(
String
downloadType
,
Uri
uri
,
@Nullable
String
cacheKey
)
{
// TODO: Remove as soon as all implementations have been updated to the new constructor.
this
(
downloadType
,
uri
,
cacheKey
,
DEFAULT_TRACK_SELECTOR_PARAMETERS
,
/* renderersFactory= */
(
handler
,
videoListener
,
audioListener
,
metadata
,
text
,
drm
)
->
new
Renderer
[
0
],
/* drmSessionManager= */
null
);
}
/**
* Creates download helper.
*
* @param downloadType A download type. This value will be used as {@link DownloadAction#type}.
...
...
library/core/src/main/java/com/google/android/exoplayer2/offline/ProgressiveDownloadHelper.java
View file @
6a6b2112
...
...
@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.offline;
import
android.net.Uri
;
import
android.support.annotation.Nullable
;
import
com.google.android.exoplayer2.Renderer
;
import
com.google.android.exoplayer2.source.TrackGroupArray
;
import
java.util.Collections
;
import
java.util.List
;
...
...
@@ -24,12 +25,29 @@ import java.util.List;
/** A {@link DownloadHelper} for progressive streams. */
public
final
class
ProgressiveDownloadHelper
extends
DownloadHelper
<
Void
>
{
/**
* Creates download helper for progressive streams.
*
* @param uri The stream {@link Uri}.
*/
public
ProgressiveDownloadHelper
(
Uri
uri
)
{
this
(
uri
,
null
);
this
(
uri
,
/* cacheKey= */
null
);
}
public
ProgressiveDownloadHelper
(
Uri
uri
,
@Nullable
String
customCacheKey
)
{
super
(
DownloadAction
.
TYPE_PROGRESSIVE
,
uri
,
customCacheKey
);
/**
* Creates download helper for progressive streams.
*
* @param uri The stream {@link Uri}.
* @param cacheKey An optional cache key.
*/
public
ProgressiveDownloadHelper
(
Uri
uri
,
@Nullable
String
cacheKey
)
{
super
(
DownloadAction
.
TYPE_PROGRESSIVE
,
uri
,
cacheKey
,
DownloadHelper
.
DEFAULT_TRACK_SELECTOR_PARAMETERS
,
(
handler
,
videoListener
,
audioListener
,
metadata
,
text
,
drm
)
->
new
Renderer
[
0
],
/* drmSessionManager= */
null
);
}
@Override
...
...
library/dash/src/main/java/com/google/android/exoplayer2/source/dash/offline/DashDownloadHelper.java
View file @
6a6b2112
...
...
@@ -16,8 +16,12 @@
package
com
.
google
.
android
.
exoplayer2
.
source
.
dash
.
offline
;
import
android.net.Uri
;
import
android.support.annotation.Nullable
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.Format
;
import
com.google.android.exoplayer2.RenderersFactory
;
import
com.google.android.exoplayer2.drm.DrmSessionManager
;
import
com.google.android.exoplayer2.drm.FrameworkMediaCrypto
;
import
com.google.android.exoplayer2.offline.DownloadAction
;
import
com.google.android.exoplayer2.offline.DownloadHelper
;
import
com.google.android.exoplayer2.offline.StreamKey
;
...
...
@@ -28,6 +32,7 @@ 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.DashManifestParser
;
import
com.google.android.exoplayer2.source.dash.manifest.Representation
;
import
com.google.android.exoplayer2.trackselection.DefaultTrackSelector
;
import
com.google.android.exoplayer2.upstream.DataSource
;
import
com.google.android.exoplayer2.upstream.ParsingLoadable
;
import
java.io.IOException
;
...
...
@@ -39,8 +44,52 @@ public final class DashDownloadHelper extends DownloadHelper<DashManifest> {
private
final
DataSource
.
Factory
manifestDataSourceFactory
;
public
DashDownloadHelper
(
Uri
uri
,
DataSource
.
Factory
manifestDataSourceFactory
)
{
super
(
DownloadAction
.
TYPE_DASH
,
uri
,
/* cacheKey= */
null
);
/**
* Creates a DASH download helper.
*
* <p>The helper uses {@link DownloadHelper#DEFAULT_TRACK_SELECTOR_PARAMETERS} for track selection
* and does not support drm protected content.
*
* @param uri A manifest {@link Uri}.
* @param manifestDataSourceFactory A {@link DataSource.Factory} used to load the manifest.
* @param renderersFactory The {@link RenderersFactory} creating the renderers for which tracks
* are selected.
*/
public
DashDownloadHelper
(
Uri
uri
,
DataSource
.
Factory
manifestDataSourceFactory
,
RenderersFactory
renderersFactory
)
{
this
(
uri
,
manifestDataSourceFactory
,
DownloadHelper
.
DEFAULT_TRACK_SELECTOR_PARAMETERS
,
renderersFactory
,
/* drmSessionManager= */
null
);
}
/**
* Creates a DASH download helper.
*
* @param uri A manifest {@link Uri}.
* @param manifestDataSourceFactory A {@link DataSource.Factory} used to load the manifest.
* @param trackSelectorParameters {@link DefaultTrackSelector.Parameters} for selecting tracks for
* downloading.
* @param renderersFactory The {@link RenderersFactory} creating the renderers for which tracks
* are selected.
* @param drmSessionManager An optional {@link DrmSessionManager} used by the renderers created by
* {@code renderersFactory}.
*/
public
DashDownloadHelper
(
Uri
uri
,
DataSource
.
Factory
manifestDataSourceFactory
,
DefaultTrackSelector
.
Parameters
trackSelectorParameters
,
RenderersFactory
renderersFactory
,
@Nullable
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
)
{
super
(
DownloadAction
.
TYPE_DASH
,
uri
,
/* cacheKey= */
null
,
trackSelectorParameters
,
renderersFactory
,
drmSessionManager
);
this
.
manifestDataSourceFactory
=
manifestDataSourceFactory
;
}
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/offline/HlsDownloadHelper.java
View file @
6a6b2112
...
...
@@ -16,8 +16,12 @@
package
com
.
google
.
android
.
exoplayer2
.
source
.
hls
.
offline
;
import
android.net.Uri
;
import
android.support.annotation.Nullable
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.Format
;
import
com.google.android.exoplayer2.RenderersFactory
;
import
com.google.android.exoplayer2.drm.DrmSessionManager
;
import
com.google.android.exoplayer2.drm.FrameworkMediaCrypto
;
import
com.google.android.exoplayer2.offline.DownloadAction
;
import
com.google.android.exoplayer2.offline.DownloadHelper
;
import
com.google.android.exoplayer2.offline.StreamKey
;
...
...
@@ -28,6 +32,7 @@ import com.google.android.exoplayer2.source.hls.playlist.HlsMasterPlaylist;
import
com.google.android.exoplayer2.source.hls.playlist.HlsMediaPlaylist
;
import
com.google.android.exoplayer2.source.hls.playlist.HlsPlaylist
;
import
com.google.android.exoplayer2.source.hls.playlist.HlsPlaylistParser
;
import
com.google.android.exoplayer2.trackselection.DefaultTrackSelector
;
import
com.google.android.exoplayer2.upstream.DataSource
;
import
com.google.android.exoplayer2.upstream.ParsingLoadable
;
import
com.google.android.exoplayer2.util.Assertions
;
...
...
@@ -43,8 +48,52 @@ public final class HlsDownloadHelper extends DownloadHelper<HlsPlaylist> {
private
int
[]
renditionGroups
;
public
HlsDownloadHelper
(
Uri
uri
,
DataSource
.
Factory
manifestDataSourceFactory
)
{
super
(
DownloadAction
.
TYPE_HLS
,
uri
,
/* cacheKey= */
null
);
/**
* Creates a HLS download helper.
*
* <p>The helper uses {@link DownloadHelper#DEFAULT_TRACK_SELECTOR_PARAMETERS} for track selection
* and does not support drm protected content.
*
* @param uri A manifest {@link Uri}.
* @param manifestDataSourceFactory A {@link DataSource.Factory} used to load the manifest.
* @param renderersFactory The {@link RenderersFactory} creating the renderers for which tracks
* are selected.
*/
public
HlsDownloadHelper
(
Uri
uri
,
DataSource
.
Factory
manifestDataSourceFactory
,
RenderersFactory
renderersFactory
)
{
this
(
uri
,
manifestDataSourceFactory
,
DownloadHelper
.
DEFAULT_TRACK_SELECTOR_PARAMETERS
,
renderersFactory
,
/* drmSessionManager= */
null
);
}
/**
* Creates a HLS download helper.
*
* @param uri A manifest {@link Uri}.
* @param manifestDataSourceFactory A {@link DataSource.Factory} used to load the manifest.
* @param trackSelectorParameters {@link DefaultTrackSelector.Parameters} for selecting tracks for
* downloading.
* @param renderersFactory The {@link RenderersFactory} creating the renderers for which tracks
* are selected.
* @param drmSessionManager An optional {@link DrmSessionManager} used by the renderers created by
* {@code renderersFactory}.
*/
public
HlsDownloadHelper
(
Uri
uri
,
DataSource
.
Factory
manifestDataSourceFactory
,
DefaultTrackSelector
.
Parameters
trackSelectorParameters
,
RenderersFactory
renderersFactory
,
@Nullable
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
)
{
super
(
DownloadAction
.
TYPE_HLS
,
uri
,
/* cacheKey= */
null
,
trackSelectorParameters
,
renderersFactory
,
drmSessionManager
);
this
.
manifestDataSourceFactory
=
manifestDataSourceFactory
;
}
...
...
library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloadHelper.java
View file @
6a6b2112
...
...
@@ -16,7 +16,11 @@
package
com
.
google
.
android
.
exoplayer2
.
source
.
smoothstreaming
.
offline
;
import
android.net.Uri
;
import
android.support.annotation.Nullable
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.RenderersFactory
;
import
com.google.android.exoplayer2.drm.DrmSessionManager
;
import
com.google.android.exoplayer2.drm.FrameworkMediaCrypto
;
import
com.google.android.exoplayer2.offline.DownloadAction
;
import
com.google.android.exoplayer2.offline.DownloadHelper
;
import
com.google.android.exoplayer2.offline.StreamKey
;
...
...
@@ -25,6 +29,7 @@ import com.google.android.exoplayer2.source.TrackGroup;
import
com.google.android.exoplayer2.source.TrackGroupArray
;
import
com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest
;
import
com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifestParser
;
import
com.google.android.exoplayer2.trackselection.DefaultTrackSelector
;
import
com.google.android.exoplayer2.upstream.DataSource
;
import
com.google.android.exoplayer2.upstream.ParsingLoadable
;
import
java.io.IOException
;
...
...
@@ -36,8 +41,52 @@ public final class SsDownloadHelper extends DownloadHelper<SsManifest> {
private
final
DataSource
.
Factory
manifestDataSourceFactory
;
public
SsDownloadHelper
(
Uri
uri
,
DataSource
.
Factory
manifestDataSourceFactory
)
{
super
(
DownloadAction
.
TYPE_SS
,
uri
,
/* cacheKey= */
null
);
/**
* Creates a SmoothStreaming download helper.
*
* <p>The helper uses {@link DownloadHelper#DEFAULT_TRACK_SELECTOR_PARAMETERS} for track selection
* and does not support drm protected content.
*
* @param uri A manifest {@link Uri}.
* @param manifestDataSourceFactory A {@link DataSource.Factory} used to load the manifest.
* @param renderersFactory The {@link RenderersFactory} creating the renderers for which tracks
* are selected.
*/
public
SsDownloadHelper
(
Uri
uri
,
DataSource
.
Factory
manifestDataSourceFactory
,
RenderersFactory
renderersFactory
)
{
this
(
uri
,
manifestDataSourceFactory
,
DownloadHelper
.
DEFAULT_TRACK_SELECTOR_PARAMETERS
,
renderersFactory
,
/* drmSessionManager= */
null
);
}
/**
* Creates a SmoothStreaming download helper.
*
* @param uri A manifest {@link Uri}.
* @param manifestDataSourceFactory A {@link DataSource.Factory} used to load the manifest.
* @param trackSelectorParameters {@link DefaultTrackSelector.Parameters} for selecting tracks for
* downloading.
* @param renderersFactory The {@link RenderersFactory} creating the renderers for which tracks
* are selected.
* @param drmSessionManager An optional {@link DrmSessionManager} used by the renderers created by
* {@code renderersFactory}.
*/
public
SsDownloadHelper
(
Uri
uri
,
DataSource
.
Factory
manifestDataSourceFactory
,
DefaultTrackSelector
.
Parameters
trackSelectorParameters
,
RenderersFactory
renderersFactory
,
@Nullable
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
)
{
super
(
DownloadAction
.
TYPE_SS
,
uri
,
/* cacheKey= */
null
,
trackSelectorParameters
,
renderersFactory
,
drmSessionManager
);
this
.
manifestDataSourceFactory
=
manifestDataSourceFactory
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment