mirror of
https://github.com/androidx/media.git
synced 2025-05-11 09:39:52 +08:00
Add Player.MetadataComponent for completeness
PiperOrigin-RevId: 225795581
This commit is contained in:
parent
f41dadca58
commit
abdb58485f
@ -283,20 +283,29 @@ public final class CastPlayer extends BasePlayer {
|
||||
// Player implementation.
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public AudioComponent getAudioComponent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public VideoComponent getVideoComponent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public TextComponent getTextComponent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public MetadataComponent getMetadataComponent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Looper getApplicationLooper() {
|
||||
return Looper.getMainLooper();
|
||||
|
@ -144,20 +144,29 @@ import java.util.concurrent.CopyOnWriteArraySet;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public AudioComponent getAudioComponent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public VideoComponent getVideoComponent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public TextComponent getTextComponent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public MetadataComponent getMetadataComponent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Looper getPlaybackLooper() {
|
||||
return internalPlayer.getPlaybackLooper();
|
||||
|
@ -26,6 +26,7 @@ import com.google.android.exoplayer2.C.VideoScalingMode;
|
||||
import com.google.android.exoplayer2.audio.AudioAttributes;
|
||||
import com.google.android.exoplayer2.audio.AudioListener;
|
||||
import com.google.android.exoplayer2.audio.AuxEffectInfo;
|
||||
import com.google.android.exoplayer2.metadata.MetadataOutput;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.text.TextOutput;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
|
||||
@ -299,6 +300,24 @@ public interface Player {
|
||||
void removeTextOutput(TextOutput listener);
|
||||
}
|
||||
|
||||
/** The metadata component of a {@link Player}. */
|
||||
interface MetadataComponent {
|
||||
|
||||
/**
|
||||
* Adds a {@link MetadataOutput} to receive metadata.
|
||||
*
|
||||
* @param output The output to register.
|
||||
*/
|
||||
void addMetadataOutput(MetadataOutput output);
|
||||
|
||||
/**
|
||||
* Removes a {@link MetadataOutput}.
|
||||
*
|
||||
* @param output The output to remove.
|
||||
*/
|
||||
void removeMetadataOutput(MetadataOutput output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Listener of changes in player state. All methods have no-op default implementations to allow
|
||||
* selective overrides.
|
||||
@ -533,6 +552,12 @@ public interface Player {
|
||||
@Nullable
|
||||
TextComponent getTextComponent();
|
||||
|
||||
/**
|
||||
* Returns the component of this player for metadata output, or null if metadata is not supported.
|
||||
*/
|
||||
@Nullable
|
||||
MetadataComponent getMetadataComponent();
|
||||
|
||||
/**
|
||||
* Returns the {@link Looper} associated with the application thread that's used to access the
|
||||
* player and on which player events are received.
|
||||
|
@ -65,7 +65,11 @@ import java.util.concurrent.CopyOnWriteArraySet;
|
||||
*/
|
||||
@TargetApi(16)
|
||||
public class SimpleExoPlayer extends BasePlayer
|
||||
implements ExoPlayer, Player.AudioComponent, Player.VideoComponent, Player.TextComponent {
|
||||
implements ExoPlayer,
|
||||
Player.AudioComponent,
|
||||
Player.VideoComponent,
|
||||
Player.TextComponent,
|
||||
Player.MetadataComponent {
|
||||
|
||||
/** @deprecated Use {@link com.google.android.exoplayer2.video.VideoListener}. */
|
||||
@Deprecated
|
||||
@ -243,20 +247,29 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public AudioComponent getAudioComponent() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public VideoComponent getVideoComponent() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public TextComponent getTextComponent() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public MetadataComponent getMetadataComponent() {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the video scaling mode.
|
||||
*
|
||||
@ -713,20 +726,12 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
removeTextOutput(output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a {@link MetadataOutput} to receive metadata.
|
||||
*
|
||||
* @param listener The output to register.
|
||||
*/
|
||||
@Override
|
||||
public void addMetadataOutput(MetadataOutput listener) {
|
||||
metadataOutputs.add(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a {@link MetadataOutput}.
|
||||
*
|
||||
* @param listener The output to remove.
|
||||
*/
|
||||
@Override
|
||||
public void removeMetadataOutput(MetadataOutput listener) {
|
||||
metadataOutputs.remove(listener);
|
||||
}
|
||||
|
@ -49,6 +49,11 @@ public abstract class StubExoPlayer extends BasePlayer implements ExoPlayer {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MetadataComponent getMetadataComponent() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Looper getPlaybackLooper() {
|
||||
throw new UnsupportedOperationException();
|
||||
|
Loading…
x
Reference in New Issue
Block a user