类android.media.PlaybackParams源码实例Demo

下面列出了怎么用android.media.PlaybackParams的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: android_9.0.0_r45   文件: TvInputManagerService.java
@Override
public void timeShiftSetPlaybackParams(IBinder sessionToken, PlaybackParams params,
        int userId) {
    final int callingUid = Binder.getCallingUid();
    final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(), callingUid,
            userId, "timeShiftSetPlaybackParams");
    final long identity = Binder.clearCallingIdentity();
    try {
        synchronized (mLock) {
            try {
                getSessionLocked(sessionToken, callingUid, resolvedUserId)
                        .timeShiftSetPlaybackParams(params);
            } catch (RemoteException | SessionNotFoundException e) {
                Slog.e(TAG, "error in timeShiftSetPlaybackParams", e);
            }
        }
    } finally {
        Binder.restoreCallingIdentity(identity);
    }
}
 
源代码2 项目: GSYVideoPlayer   文件: SystemPlayerManager.java
private void setSpeed(float speed) {
    if (release) {
        return;
    }
    if (mediaPlayer != null && mediaPlayer.getInternalMediaPlayer() != null && mediaPlayer.isPlayable()) {
        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                PlaybackParams playbackParams = new PlaybackParams();
                playbackParams.setSpeed(speed);
                mediaPlayer.getInternalMediaPlayer().setPlaybackParams(playbackParams);
            } else {
                Debuger.printfError(" not support setSpeed");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
 
源代码3 项目: 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);
}
 
源代码4 项目: 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;
  }
}
 
源代码5 项目: 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;
  }
}
 
源代码6 项目: MediaSDK   文件: 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);
}
 
源代码7 项目: MediaSDK   文件: MediaPlayerImpl.java
@Override
public void setSpeed(float speed) {
    if (Build.VERSION.SDK_INT > 23) {
        PlaybackParams params = new PlaybackParams();
        params.setSpeed(speed);
        mPlayer.setPlaybackParams(params);
    } else {
        LogUtils.w("setSpeed is invalid.");
    }
}
 
源代码8 项目: TelePlus-Android   文件: 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);
}
 
源代码9 项目: imsdk-android   文件: JZMediaSystem.java
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void setSpeed(float speed) {
    PlaybackParams pp = mediaPlayer.getPlaybackParams();
    pp.setSpeed(speed);
    mediaPlayer.setPlaybackParams(pp);
}
 
源代码10 项目: imsdk-android   文件: JZMediaSystemAssertFolder.java
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void setSpeed(float speed) {
    PlaybackParams pp = mediaPlayer.getPlaybackParams();
    pp.setSpeed(speed);
    mediaPlayer.setPlaybackParams(pp);
}
 
源代码11 项目: TelePlus-Android   文件: 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);
}
 
源代码12 项目: xipl   文件: 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);
    }
}
 
源代码13 项目: 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);
  }
}
 
源代码14 项目: 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);
  }
}
 
源代码15 项目: K-Sonic   文件: AudioTrack.java
@Override
public void setPlaybackParams(PlaybackParams playbackParams) {
  playbackParams = (playbackParams != null ? playbackParams : new PlaybackParams())
      .allowDefaults();
  this.playbackParams = playbackParams;
  playbackSpeed = playbackParams.getSpeed();
  maybeApplyPlaybackParams();
}
 
源代码16 项目: 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);
        }
    }
}
 
源代码17 项目: 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;
}
 
源代码18 项目: 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;
}
 
源代码19 项目: 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());
    }
}
 
源代码20 项目: 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);
		}
	}
}
 
@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);
}
 
@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);
}
 
@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();
    }
}
 
@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);
    }
}
 
源代码25 项目: Telegram-FOSS   文件: 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);
}
 
源代码26 项目: 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);
}
 
@TargetApi(Build.VERSION_CODES.M)
public void changePlaybackSpeed(float speed) {
    PlaybackParams playbackParams = new PlaybackParams();
    playbackParams.setSpeed(speed);
    setPlaybackParams(playbackParams);
}
 
源代码28 项目: xipl   文件: BaseTvInputService.java
@Override
public void onTimeShiftResume() {
    if (DEBUG) Log.d(TAG, "Resume playback of program");
    mTimeShiftIsPaused = false;
    if (mCurrentProgram == null) {
        return;
    }

    if (!mPlayingRecordedProgram) {
        // If currently playing program content, past ad durations must be recalculated
        // based on getTvPlayer.getCurrentPosition().
        mElapsedAdsTime = 0;
        mElapsedProgramTime = getTvPlayer().getCurrentPosition();
        long elapsedProgramTimeAdjusted =
                mElapsedProgramTime + mCurrentProgram.getStartTimeUtcMillis();
        if (mCurrentProgram.getInternalProviderData() != null) {
            List<Advertisement> ads = mCurrentProgram.getInternalProviderData().getAds();
            // First, sort the ads in time order.
            TreeMap<Long, Long> scheduledAds = new TreeMap<>();
            for (Advertisement ad : ads) {
                scheduledAds.put(ad.getStartTimeUtcMillis(), ad.getStopTimeUtcMillis());
            }
            // Second, add up all ad times which should have played before the elapsed
            // program time.
            long programDurationPlayed = 0;
            long totalDurationPlayed = 0;
            for (Long adStartTime : scheduledAds.keySet()) {
                programDurationPlayed += adStartTime - totalDurationPlayed;
                if (programDurationPlayed < elapsedProgramTimeAdjusted) {
                    long adDuration = scheduledAds.get(adStartTime) - adStartTime;
                    mElapsedAdsTime += adDuration;
                    totalDurationPlayed = programDurationPlayed + adDuration;
                } else {
                    break;
                }
            }
        } else {
            Log.w(
                    TAG,
                    "Failed to get program provider data for "
                            + mCurrentProgram.getTitle()
                            + ". Try to do an EPG sync.");
        }

        mTimeShiftedPlaybackPosition = elapsedProgramTimeAdjusted + mElapsedAdsTime;

        scheduleNextAd();
        scheduleNextProgram();
    }

    if (getTvPlayer() != null) {
        getTvPlayer().play();
    }
    // Resume and make sure media is playing at regular speed.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        PlaybackParams normalParams = new PlaybackParams();
        normalParams.setSpeed(1);
        onTimeShiftSetPlaybackParams(normalParams);
    }
}
 
源代码29 项目: xipl   文件: MockTvPlayer.java
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void setPlaybackParams(PlaybackParams params) {
    mMediaPlayer.setPlaybackParams(params);
}
 
源代码30 项目: 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;
}
 
 类所在包
 同包方法