package android.media;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.media.VolumeShaper;
import android.os.RemoteException;
import android.util.Log;
import java.lang.IllegalArgumentException;
import java.util.Objects;
@SystemApi
public class PlayerProxy {
private final static String TAG = "PlayerProxy";
private final static boolean DEBUG = false;
private final AudioPlaybackConfiguration mConf;
PlayerProxy(@NonNull AudioPlaybackConfiguration apc) {
if (apc == null) {
throw new IllegalArgumentException("Illegal null AudioPlaybackConfiguration");
}
mConf = apc;
};
@SystemApi
public void start() {
try {
mConf.getIPlayer().start();
} catch (NullPointerException|RemoteException e) {
throw new IllegalStateException(
"No player to proxy for start operation, player already released?", e);
}
}
@SystemApi
public void pause() {
try {
mConf.getIPlayer().pause();
} catch (NullPointerException|RemoteException e) {
throw new IllegalStateException(
"No player to proxy for pause operation, player already released?", e);
}
}
@SystemApi
public void stop() {
try {
mConf.getIPlayer().stop();
} catch (NullPointerException|RemoteException e) {
throw new IllegalStateException(
"No player to proxy for stop operation, player already released?", e);
}
}
@SystemApi
public void setVolume(float vol) {
try {
mConf.getIPlayer().setVolume(vol);
} catch (NullPointerException|RemoteException e) {
throw new IllegalStateException(
"No player to proxy for setVolume operation, player already released?", e);
}
}
@SystemApi
public void setPan(float pan) {
try {
mConf.getIPlayer().setPan(pan);
} catch (NullPointerException|RemoteException e) {
throw new IllegalStateException(
"No player to proxy for setPan operation, player already released?", e);
}
}
@SystemApi
public void setStartDelayMs(int delayMs) {
try {
mConf.getIPlayer().setStartDelayMs(delayMs);
} catch (NullPointerException|RemoteException e) {
throw new IllegalStateException(
"No player to proxy for setStartDelayMs operation, player already released?",
e);
}
}
public void applyVolumeShaper(
@NonNull VolumeShaper.Configuration configuration,
@NonNull VolumeShaper.Operation operation) {
try {
mConf.getIPlayer().applyVolumeShaper(configuration, operation);
} catch (NullPointerException|RemoteException e) {
throw new IllegalStateException(
"No player to proxy for applyVolumeShaper operation,"
+ " player already released?", e);
}
}
}