Java 类android.media.PlaybackParams 实例源码

项目:nuclei-android    文件:FallbackPlayback.java   
@Override
public void setPlaybackParams(PlaybackParameters playbackParams) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (mMediaPlayer == null || !mPrepared) {
            mPlaybackParams = new PlaybackParams().setSpeed(playbackParams.speed).setPitch(playbackParams.pitch);
        } else {
            mMediaPlayer.setPlaybackParams(new PlaybackParams().setSpeed(playbackParams.speed).setPitch(playbackParams.pitch));

            if (mState != PlaybackStateCompat.STATE_PLAYING && mMediaPlayer.isPlaying()) {
                mState = PlaybackStateCompat.STATE_PLAYING;
            }
            if (mCallback != null) {
                mCallback.onPlaybackStatusChanged(mState);
            }
        }
    }
}
项目:android_packages_apps_tv    文件:MpegTsPlayer.java   
private void stopSmoothTrickplay(boolean calledBySeek) {
    if (mTrickplayRunning) {
        mTrickplayRunning = false;
        if (mAudioRenderer instanceof Ac3PassthroughTrackRenderer) {
            mPlayer.sendMessage(mAudioRenderer,
                    Ac3PassthroughTrackRenderer.MSG_SET_PLAYBACK_SPEED,
                    1.0f);
        } else {
            mPlayer.sendMessage(mAudioRenderer,
                    MediaCodecAudioTrackRenderer.MSG_SET_PLAYBACK_PARAMS,
                    new PlaybackParams().setSpeed(1.0f));
        }
        if (!calledBySeek) {
            mPlayer.seekTo(mPlayer.getCurrentPosition());
        }
    }
}
项目:K-Sonic    文件:SimpleExoPlayer.java   
/**
 * Sets the {@link PlaybackParams} governing audio playback.
 *
 * @param params The {@link PlaybackParams}, or null to clear any previously set parameters.
 */
@TargetApi(23)
public void setPlaybackParams(PlaybackParams params) {
  if (params != null) {
    // The audio renderers will call this on the playback thread to ensure they can query
    // parameters without failure. We do the same up front, which is redundant except that it
    // ensures an immediate call to getPlaybackParams will retrieve the instance with defaults
    // allowed, rather than this change becoming visible sometime later once the audio renderers
    // receive the parameters.
    params.allowDefaults();
    playbackParamsHolder = new PlaybackParamsHolder(params);
  } else {
    playbackParamsHolder = null;
  }
  ExoPlayerMessage[] messages = new ExoPlayerMessage[audioRendererCount];
  int count = 0;
  for (Renderer renderer : renderers) {
    if (renderer.getTrackType() == C.TRACK_TYPE_AUDIO) {
      messages[count++] = new ExoPlayerMessage(renderer, C.MSG_SET_PLAYBACK_PARAMS, params);
    }
  }
  player.sendMessages(messages);
}
项目:K-Sonic    文件:SimpleDecoderAudioRenderer.java   
@Override
public void handleMessage(int messageType, Object message) throws ExoPlaybackException {
  switch (messageType) {
    case C.MSG_SET_VOLUME:
      audioTrack.setVolume((Float) message);
      break;
    case C.MSG_SET_PLAYBACK_PARAMS:
      audioTrack.setPlaybackParams((PlaybackParams) message);
      break;
    case C.MSG_SET_STREAM_TYPE:
      @C.StreamType int streamType = (Integer) message;
      audioTrack.setStreamType(streamType);
      break;
    default:
      super.handleMessage(messageType, message);
      break;
  }
}
项目:K-Sonic    文件:MediaCodecAudioRenderer.java   
@Override
public void handleMessage(int messageType, Object message) throws ExoPlaybackException {
  switch (messageType) {
    case C.MSG_SET_VOLUME:
      audioTrack.setVolume((Float) message);
      break;
    case C.MSG_SET_PLAYBACK_PARAMS:
      audioTrack.setPlaybackParams((PlaybackParams) message);
      break;
    case C.MSG_SET_STREAM_TYPE:
      @C.StreamType int streamType = (Integer) message;
      audioTrack.setStreamType(streamType);
      break;
    default:
      super.handleMessage(messageType, message);
      break;
  }
}
项目:videoPickPlayer    文件:SimpleExoPlayer.java   
/**
 * Sets the {@link PlaybackParams} governing audio playback.
 *
 * @param params The {@link PlaybackParams}, or null to clear any previously set parameters.
 */
@TargetApi(23)
public void setPlaybackParams(PlaybackParams params) {
  if (params != null) {
    // The audio renderers will call this on the playback thread to ensure they can query
    // parameters without failure. We do the same up front, which is redundant except that it
    // ensures an immediate call to getPlaybackParams will retrieve the instance with defaults
    // allowed, rather than this change becoming visible sometime later once the audio renderers
    // receive the parameters.
    params.allowDefaults();
    playbackParamsHolder = new PlaybackParamsHolder(params);
  } else {
    playbackParamsHolder = null;
  }
  ExoPlayerMessage[] messages = new ExoPlayerMessage[audioRendererCount];
  int count = 0;
  for (Renderer renderer : renderers) {
    if (renderer.getTrackType() == C.TRACK_TYPE_AUDIO) {
      messages[count++] = new ExoPlayerMessage(renderer, C.MSG_SET_PLAYBACK_PARAMS, params);
    }
  }
  player.sendMessages(messages);
}
项目:androidtv-sample-inputs    文件:FakeTrickplayRunnable.java   
public void setPlaybackParams(PlaybackParams playbackParams) {
    if (Math.abs(playbackParams.getSpeed() - 1f) < 0.1) {
        // Handle normal playback, stopping the background thread
        if (DEBUG) {
            Log.d(TAG, "Returning to normal speed, so we will stop running thread");
        }
        stop();
        return;
    }
    if (DEBUG) {
        Log.d(TAG, "Start trickplay thread with a speed of " + playbackParams.getSpeed());
    }
    mSpeed = playbackParams.getSpeed();
    if (mFakeTrickplayHandler == null) {
        mFakeTrickplayHandler = new Handler(Looper.getMainLooper());
    }
    if (!mActive) {
        mFakeTrickplayHandler.post(this);
        mActive = true;
    }
}
项目:androidtv-sample-inputs    文件:BaseTvInputService.java   
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onTimeShiftSetPlaybackParams(PlaybackParams params) {
    if (params.getSpeed() != 1.0f) {
        mHandler.removeMessages(MSG_PLAY_AD);
        mDbHandler.removeCallbacks(mGetCurrentProgramRunnable);
    }

    if (DEBUG) {
        Log.d(TAG, "Set playback speed to " + params.getSpeed());
    }
    if (getTvPlayer() != null) {
        getTvPlayer().setPlaybackParams(params);
    }
}
项目:airgram    文件:MediaCodecAudioTrackRenderer.java   
@Override
public void handleMessage(int messageType, Object message) throws ExoPlaybackException {
  switch (messageType) {
    case MSG_SET_VOLUME:
      audioTrack.setVolume((Float) message);
      break;
    case MSG_SET_PLAYBACK_PARAMS:
      audioTrack.setPlaybackParams((PlaybackParams) message);
      break;
    default:
      super.handleMessage(messageType, message);
      break;
  }
}
项目:airgram    文件:AudioTrack.java   
@Override
public void setPlaybackParameters(PlaybackParams playbackParams) {
  playbackParams = (playbackParams != null ? playbackParams : new PlaybackParams())
      .allowDefaults();
  this.playbackParams = playbackParams;
  this.playbackSpeed = playbackParams.getSpeed();
  maybeApplyPlaybackParams();
}
项目:PlusGram    文件:MediaCodecAudioTrackRenderer.java   
@Override
public void handleMessage(int messageType, Object message) throws ExoPlaybackException {
  switch (messageType) {
    case MSG_SET_VOLUME:
      audioTrack.setVolume((Float) message);
      break;
    case MSG_SET_PLAYBACK_PARAMS:
      audioTrack.setPlaybackParams((PlaybackParams) message);
      break;
    default:
      super.handleMessage(messageType, message);
      break;
  }
}
项目:PlusGram    文件:AudioTrack.java   
@Override
public void setPlaybackParameters(PlaybackParams playbackParams) {
  playbackParams = (playbackParams != null ? playbackParams : new PlaybackParams())
      .allowDefaults();
  this.playbackParams = playbackParams;
  this.playbackSpeed = playbackParams.getSpeed();
  maybeApplyPlaybackParams();
}
项目:Exoplayer2Radio    文件:SimpleExoPlayer.java   
/**
 * Sets the {@link PlaybackParams} governing audio playback.
 *
 * @deprecated Use {@link #setPlaybackParameters(PlaybackParameters)}.
 * @param params The {@link PlaybackParams}, or null to clear any previously set parameters.
 */
@Deprecated
@TargetApi(23)
public void setPlaybackParams(@Nullable PlaybackParams params) {
  PlaybackParameters playbackParameters;
  if (params != null) {
    params.allowDefaults();
    playbackParameters = new PlaybackParameters(params.getSpeed(), params.getPitch());
  } else {
    playbackParameters = null;
  }
  setPlaybackParameters(playbackParameters);
}
项目:android_packages_apps_tv    文件:TunableTvView.java   
/**
 * Rewinds the media with the given speed, if the current input supports time-shifting.
 *
 * @param speed The speed to rewind the media. e.g. 2 for 2x, 3 for 3x and 4 for 4x.
 */
public void timeshiftRewind(int speed) {
    if (!isTimeShiftAvailable()) {
        throw new IllegalStateException("Time-shift is not supported for the current channel");
    } else {
        if (speed <= 0) {
            throw new IllegalArgumentException("The speed should be a positive integer.");
        }
        mTimeShiftState = TIME_SHIFT_STATE_REWIND;
        PlaybackParams params = new PlaybackParams();
        params.setSpeed(speed * -1);
        mTvView.timeShiftSetPlaybackParams(params);
    }
}
项目:android_packages_apps_tv    文件:TunableTvView.java   
/**
 * Fast-forwards the media with the given speed, if the current input supports time-shifting.
 *
 * @param speed The speed to forward the media. e.g. 2 for 2x, 3 for 3x and 4 for 4x.
 */
public void timeshiftFastForward(int speed) {
    if (!isTimeShiftAvailable()) {
        throw new IllegalStateException("Time-shift is not supported for the current channel");
    } else {
        if (speed <= 0) {
            throw new IllegalArgumentException("The speed should be a positive integer.");
        }
        mTimeShiftState = TIME_SHIFT_STATE_FAST_FORWARD;
        PlaybackParams params = new PlaybackParams();
        params.setSpeed(speed);
        mTvView.timeShiftSetPlaybackParams(params);
    }
}
项目:android_packages_apps_tv    文件:TunerSessionWorker.java   
private void doTimeShiftSetPlaybackParams(PlaybackParams params) {
    if (!hasEnoughBackwardBuffer() && params.getSpeed() < 1.0f) {
        return;
    }
    mPlaybackParams = params;
    float speed = mPlaybackParams.getSpeed();
    if (speed == 1.0f) {
        mHandler.removeMessages(MSG_SMOOTH_TRICKPLAY_MONITOR);
        mHandler.removeMessages(MSG_TRICKPLAY_BY_SEEK);
        doTimeShiftResume();
    } else if (mPlayer.supportSmoothTrickPlay(speed)) {
        mHandler.removeMessages(MSG_TRICKPLAY_BY_SEEK);
        mPlayer.setAudioTrack(false);
        mPlayer.startSmoothTrickplay(mPlaybackParams);
        mHandler.sendEmptyMessageDelayed(MSG_SMOOTH_TRICKPLAY_MONITOR,
                TRICKPLAY_MONITOR_INTERVAL_MS);
    } else {
        mHandler.removeMessages(MSG_SMOOTH_TRICKPLAY_MONITOR);
        if (!mHandler.hasMessages(MSG_TRICKPLAY_BY_SEEK)) {
            mPlayer.setAudioTrack(false);
            mPlayer.setPlayWhenReady(false);
            // Initiate trickplay
            mHandler.sendMessage(mHandler.obtainMessage(MSG_TRICKPLAY_BY_SEEK,
                    (int) (mPlayer.getCurrentPosition()
                            + speed * getTrickPlaySeekIntervalMs()), 0));
        }
    }
}
项目:android_packages_apps_tv    文件:MpegTsPlayer.java   
/**
 * Starts trickplay. It'll be reset, if {@link #seekTo} or {@link #setPlayWhenReady} is called.
 */
public void startSmoothTrickplay(PlaybackParams playbackParams) {
    SoftPreconditions.checkState(supportSmoothTrickPlay(playbackParams.getSpeed()));
    mPlayer.setPlayWhenReady(true);
    mTrickplayRunning = true;
    if (mAudioRenderer instanceof Ac3PassthroughTrackRenderer) {
        mPlayer.sendMessage(mAudioRenderer, Ac3PassthroughTrackRenderer.MSG_SET_PLAYBACK_SPEED,
                playbackParams.getSpeed());
    } else {
        mPlayer.sendMessage(mAudioRenderer,
                MediaCodecAudioTrackRenderer.MSG_SET_PLAYBACK_PARAMS,
                playbackParams);
    }
}
项目:K-Sonic    文件:SimpleExoPlayer.java   
public void setPlaybackSpeed(float speed) {
  this.speed = speed;
  if (Build.VERSION.SDK_INT >= 23) {
    PlaybackParams params = new PlaybackParams();
    params.setSpeed(speed);
    setPlaybackParams(params);
  } else if (sonicMediaCodecAudioRenderer != null) {
    sonicMediaCodecAudioRenderer.setSonicSpeed(speed);
  }
}
项目:K-Sonic    文件:SimpleExoPlayer.java   
public void setPlaybackPitch(float pitch) {
  this.pitch = pitch;
  if (Build.VERSION.SDK_INT >= 23) {
    PlaybackParams params = new PlaybackParams();
    params.setPitch(pitch);
    setPlaybackParams(params);
  } else if (sonicMediaCodecAudioRenderer != null) {
    sonicMediaCodecAudioRenderer.setSonicPitch(pitch);
  }
}
项目:K-Sonic    文件:AudioTrack.java   
@Override
public void setPlaybackParams(PlaybackParams playbackParams) {
  playbackParams = (playbackParams != null ? playbackParams : new PlaybackParams())
      .allowDefaults();
  this.playbackParams = playbackParams;
  playbackSpeed = playbackParams.getSpeed();
  maybeApplyPlaybackParams();
}
项目:ExoPlayer-Demo    文件:MediaCodecAudioTrackRenderer.java   
@Override
public void handleMessage(int messageType, Object message) throws ExoPlaybackException {
  switch (messageType) {
    case MSG_SET_VOLUME:
      audioTrack.setVolume((Float) message);
      break;
    case MSG_SET_PLAYBACK_PARAMS:
      audioTrack.setPlaybackParams((PlaybackParams) message);
      break;
    default:
      super.handleMessage(messageType, message);
      break;
  }
}
项目:ExoPlayer-Demo    文件:AudioTrack.java   
@Override
public void setPlaybackParameters(PlaybackParams playbackParams) {
  playbackParams = (playbackParams != null ? playbackParams : new PlaybackParams())
      .allowDefaults();
  this.playbackParams = playbackParams;
  this.playbackSpeed = playbackParams.getSpeed();
  maybeApplyPlaybackParams();
}
项目:ChristmasVoice    文件:AudioPlayer.java   
@Override
public void startPlaying() {
    if (isPlaying()) {
        audioTrack.stop();
    }
    PlaybackParams playbackParams = audioTrack.getPlaybackParams();
    playbackParams.setPitch(speed);
    audioTrack.setPlaybackParams(playbackParams);
    audioTrack.setPlaybackPositionUpdateListener(positionListener);
    audioTrack.play();
    AudioPlayerTask playerTask = new AudioPlayerTask(audioTrack, file);
    playerThread = new Thread(playerTask);
    playerThread.start();
}
项目:videoPickPlayer    文件:SimpleDecoderAudioRenderer.java   
@Override
public void handleMessage(int messageType, Object message) throws ExoPlaybackException {
  switch (messageType) {
    case C.MSG_SET_VOLUME:
      audioTrack.setVolume((Float) message);
      break;
    case C.MSG_SET_PLAYBACK_PARAMS:
      audioTrack.setPlaybackParams((PlaybackParams) message);
      break;
    default:
      super.handleMessage(messageType, message);
      break;
  }
}
项目:videoPickPlayer    文件:MediaCodecAudioRenderer.java   
@Override
public void handleMessage(int messageType, Object message) throws ExoPlaybackException {
  switch (messageType) {
    case C.MSG_SET_VOLUME:
      audioTrack.setVolume((Float) message);
      break;
    case C.MSG_SET_PLAYBACK_PARAMS:
      audioTrack.setPlaybackParams((PlaybackParams) message);
      break;
    default:
      super.handleMessage(messageType, message);
      break;
  }
}
项目:videoPickPlayer    文件:AudioTrack.java   
@Override
public void setPlaybackParams(PlaybackParams playbackParams) {
  playbackParams = (playbackParams != null ? playbackParams : new PlaybackParams())
      .allowDefaults();
  this.playbackParams = playbackParams;
  this.playbackSpeed = playbackParams.getSpeed();
  maybeApplyPlaybackParams();
}
项目:ChannelSurfer    文件:SimpleSessionImpl.java   
@Override
public void onTimeShiftSetPlaybackParams(PlaybackParams params) {
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (tvInputProvider instanceof TimeShiftable) {
            ((TimeShiftable) tvInputProvider).onMediaSetPlaybackParams(params);
        }
    }
}
项目:ExoMedia    文件:NativeAudioPlayer.java   
@Override
public boolean setPlaybackSpeed(float speed) {
    // Marshmallow+ support setting the playback speed natively
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        PlaybackParams params = new PlaybackParams();
        params.setSpeed(speed);

        mediaPlayer.setPlaybackParams(params);
        return true;
    }

    return false;
}
项目:ExoMedia    文件:NativeVideoDelegate.java   
public boolean setPlaybackSpeed(float speed) {
    // Marshmallow+ support setting the playback speed natively
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        PlaybackParams params = new PlaybackParams();
        params.setSpeed(speed);

        mediaPlayer.setPlaybackParams(params);
        return true;
    }

    return false;
}
项目:transistor    文件:SimpleExoPlayer.java   
/**
 * Sets the {@link PlaybackParams} governing audio playback.
 *
 * @deprecated Use {@link #setPlaybackParameters(PlaybackParameters)}.
 * @param params The {@link PlaybackParams}, or null to clear any previously set parameters.
 */
@Deprecated
@TargetApi(23)
public void setPlaybackParams(@Nullable PlaybackParams params) {
  PlaybackParameters playbackParameters;
  if (params != null) {
    params.allowDefaults();
    playbackParameters = new PlaybackParameters(params.getSpeed(), params.getPitch());
  } else {
    playbackParameters = null;
  }
  setPlaybackParameters(playbackParameters);
}
项目:CumulusTV    文件:CumulusTvPlayer.java   
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void setPlaybackParams(PlaybackParams params) {
    mSimpleExoPlayer.setPlaybackParams(params);
    mPlaybackSpeed = params.getSpeed();
    if (DEBUG) {
        Log.d(TAG, "Set params " + params.toString());
    }
}
项目:Popeens-DSub    文件:DownloadService.java   
private synchronized void applyPlaybackParams(MediaPlayer mediaPlayer) {
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        float playbackSpeed = getPlaybackSpeed();

        try {
            if (Math.abs(playbackSpeed - 1.0) > 0.01 || mediaPlayer.getPlaybackParams() != null) {
                PlaybackParams playbackParams = new PlaybackParams();
                playbackParams.setSpeed(playbackSpeed);
                mediaPlayer.setPlaybackParams(playbackParams);
            }
        } catch(Exception e) {
            Log.e(TAG, "Error while applying media player params", e);
        }
    }
}
项目:AntennaPod-AudioPlayer    文件:AndroidAudioPlayer.java   
@Override
public void setPitchStepsAdjustment(float pitchSteps) {
    if (Build.VERSION.SDK_INT < 23) {
        return;
    }
    PlaybackParams params = mp.getPlaybackParams();
    params.setPitch(params.getPitch() + pitchSteps);
    mp.setPlaybackParams(params);
}
项目:AntennaPod-AudioPlayer    文件:AndroidAudioPlayer.java   
@Override
public void setPlaybackPitch(float f) {
    Log.d(AMP_TAG, "setPlaybackPitch(" + f + ")");
    if (Build.VERSION.SDK_INT < 23) {
        return;
    }
    PlaybackParams params = mp.getPlaybackParams();
    params.setPitch(f);
    mp.setPlaybackParams(params);
}
项目:AntennaPod-AudioPlayer    文件:AndroidAudioPlayer.java   
@Override
public void setPlaybackSpeed(float f) {
    Log.d(AMP_TAG, "setPlaybackSpeed(" + f + ")");
    if (Build.VERSION.SDK_INT < 23) {
        return;
    }
    PlaybackParams params = mp.getPlaybackParams();
    params.setSpeed(f);
    boolean isPaused = this.owningMediaPlayer.state == org.antennapod.audio.MediaPlayer.State.PAUSED;
    mp.setPlaybackParams(params);
    if (isPaused) {
        mp.pause();
    }
}
项目:Telegram    文件:SimpleExoPlayer.java   
/**
 * Sets the {@link PlaybackParams} governing audio playback.
 *
 * @deprecated Use {@link #setPlaybackParameters(PlaybackParameters)}.
 * @param params The {@link PlaybackParams}, or null to clear any previously set parameters.
 */
@Deprecated
@TargetApi(23)
public void setPlaybackParams(@Nullable PlaybackParams params) {
  PlaybackParameters playbackParameters;
  if (params != null) {
    params.allowDefaults();
    playbackParameters = new PlaybackParameters(params.getSpeed(), params.getPitch());
  } else {
    playbackParameters = null;
  }
  setPlaybackParameters(playbackParameters);
}
项目:react-native-audio-toolkitTemp    文件:AudioPlayerModule.java   
@ReactMethod
public void set(Integer playerId, ReadableMap options, Callback callback) {
    MediaPlayer player = this.playerPool.get(playerId);
    if (player == null) {
        callback.invoke(errObj("notfound", "playerId " + playerId + " not found."));
        return;
    }

    if (options.hasKey("wakeLock")) {
        // TODO: can we disable the wake lock also?
        if (options.getBoolean("wakeLock")) {
            player.setWakeMode(this.context, PowerManager.PARTIAL_WAKE_LOCK);
        }
    }

    if (options.hasKey("autoDestroy")) {
        this.playerAutoDestroy.put(playerId, options.getBoolean("autoDestroy"));
    }

    if (options.hasKey("continuesToPlayInBackground")) {
        this.playerContinueInBackground.put(playerId, options.getBoolean("continuesToPlayInBackground"));
    }

    if (options.hasKey("volume") && !options.isNull("volume")) {
        double vol = options.getDouble("volume");
        player.setVolume((float) vol, (float) vol);
    }

    if (options.hasKey("looping") && !options.isNull("looping")) {
        this.looping = options.getBoolean("looping");
    }

    if (options.hasKey("speed") || options.hasKey("pitch")) {
        PlaybackParams params = new PlaybackParams();

        if (options.hasKey("speed") && !options.isNull("speed")) {
            params.setSpeed((float) options.getDouble("speed"));
        }

        if (options.hasKey("pitch") && !options.isNull("pitch")) {
            params.setPitch((float) options.getDouble("pitch"));
        }

        player.setPlaybackParams(params);
    }

    callback.invoke();
}
项目:android_packages_apps_tv    文件:TunerSession.java   
@Override
public void onTimeShiftSetPlaybackParams(PlaybackParams params) {
    mSessionWorker.sendMessage(
            TunerSessionWorker.MSG_TIMESHIFT_SET_PLAYBACKPARAMS, params);
}
项目:android_packages_apps_tv    文件:TestTvInputService.java   
@Override
public void onTimeShiftSetPlaybackParams(PlaybackParams params) {
    mSpeed = params.getSpeed();
}
项目:K-Sonic    文件:SimpleExoPlayer.java   
/**
 * Returns the {@link PlaybackParams} governing audio playback, or null if not set.
 */
@TargetApi(23)
public PlaybackParams getPlaybackParams() {
  return playbackParamsHolder == null ? null : playbackParamsHolder.params;
}