com.google.android.exoplayer2.util.Util.castNonNull()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(7.7k)|赞(0)|评价(0)|浏览(284)

本文整理了Java中com.google.android.exoplayer2.util.Util.castNonNull()方法的一些代码示例,展示了Util.castNonNull()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Util.castNonNull()方法的具体详情如下:
包路径:com.google.android.exoplayer2.util.Util
类名称:Util
方法名:castNonNull

Util.castNonNull介绍

[英]Casts a nullable variable to a non-null variable without runtime null check.

Use Assertions#checkNotNull(Object) to throw if the value is null.
[中]将可空变量强制转换为非空变量,而无需运行时空检查。
如果值为null,则使用断言#checkNotNull(Object)抛出。

代码示例

代码示例来源:origin: google/ExoPlayer

  1. /* package */ CommentFrame(Parcel in) {
  2. super(ID);
  3. language = castNonNull(in.readString());
  4. description = castNonNull(in.readString());
  5. text = castNonNull(in.readString());
  6. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ InternalFrame(Parcel in) {
  2. super(ID);
  3. domain = castNonNull(in.readString());
  4. description = castNonNull(in.readString());
  5. text = castNonNull(in.readString());
  6. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ UrlLinkFrame(Parcel in) {
  2. super(castNonNull(in.readString()));
  3. description = in.readString();
  4. url = castNonNull(in.readString());
  5. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ TextInformationFrame(Parcel in) {
  2. super(castNonNull(in.readString()));
  3. description = in.readString();
  4. value = castNonNull(in.readString());
  5. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ GeobFrame(Parcel in) {
  2. super(ID);
  3. mimeType = castNonNull(in.readString());
  4. filename = castNonNull(in.readString());
  5. description = castNonNull(in.readString());
  6. data = castNonNull(in.createByteArray());
  7. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ ApicFrame(Parcel in) {
  2. super(ID);
  3. mimeType = castNonNull(in.readString());
  4. description = castNonNull(in.readString());
  5. pictureType = in.readInt();
  6. pictureData = castNonNull(in.createByteArray());
  7. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ PrivFrame(Parcel in) {
  2. super(ID);
  3. owner = castNonNull(in.readString());
  4. privateData = castNonNull(in.createByteArray());
  5. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ EventMessage(Parcel in) {
  2. schemeIdUri = castNonNull(in.readString());
  3. value = castNonNull(in.readString());
  4. presentationTimeUs = in.readLong();
  5. durationMs = in.readLong();
  6. id = in.readLong();
  7. messageData = castNonNull(in.createByteArray());
  8. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ BinaryFrame(Parcel in) {
  2. super(castNonNull(in.readString()));
  3. data = castNonNull(in.createByteArray());
  4. }

代码示例来源:origin: google/ExoPlayer

  1. /**
  2. * Unregister a task.
  3. *
  4. * @param priority The priority of the task.
  5. */
  6. public void remove(int priority) {
  7. synchronized (lock) {
  8. queue.remove(priority);
  9. highestPriority = queue.isEmpty() ? Integer.MIN_VALUE : Util.castNonNull(queue.peek());
  10. lock.notifyAll();
  11. }
  12. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ ChapterFrame(Parcel in) {
  2. super(ID);
  3. this.chapterId = castNonNull(in.readString());
  4. this.startTimeMs = in.readInt();
  5. this.endTimeMs = in.readInt();
  6. this.startOffset = in.readLong();
  7. this.endOffset = in.readLong();
  8. int subFrameCount = in.readInt();
  9. subFrames = new Id3Frame[subFrameCount];
  10. for (int i = 0; i < subFrameCount; i++) {
  11. subFrames[i] = in.readParcelable(Id3Frame.class.getClassLoader());
  12. }
  13. }

代码示例来源:origin: google/ExoPlayer

  1. private MdtaMetadataEntry(Parcel in) {
  2. key = Util.castNonNull(in.readString());
  3. value = new byte[in.readInt()];
  4. in.readByteArray(value);
  5. localeIndicator = in.readInt();
  6. typeIndicator = in.readInt();
  7. }

代码示例来源:origin: google/ExoPlayer

  1. /** Notifies listeners that a transfer ended. */
  2. protected final void transferEnded() {
  3. DataSpec dataSpec = castNonNull(this.dataSpec);
  4. for (int i = 0; i < listenerCount; i++) {
  5. listeners.get(i).onTransferEnd(/* source= */ this, dataSpec, isNetwork);
  6. }
  7. this.dataSpec = null;
  8. }
  9. }

代码示例来源:origin: google/ExoPlayer

  1. /* package */ ChapterTocFrame(Parcel in) {
  2. super(ID);
  3. this.elementId = castNonNull(in.readString());
  4. this.isRoot = in.readByte() != 0;
  5. this.isOrdered = in.readByte() != 0;
  6. this.children = in.createStringArray();
  7. int subFrameCount = in.readInt();
  8. subFrames = new Id3Frame[subFrameCount];
  9. for (int i = 0; i < subFrameCount; i++) {
  10. subFrames[i] = in.readParcelable(Id3Frame.class.getClassLoader());
  11. }
  12. }

代码示例来源:origin: google/ExoPlayer

  1. /**
  2. * Notifies listeners that bytes were transferred.
  3. *
  4. * @param bytesTransferred The number of bytes transferred since the previous call to this method
  5. * (or if the first call, since the transfer was started).
  6. */
  7. protected final void bytesTransferred(int bytesTransferred) {
  8. DataSpec dataSpec = castNonNull(this.dataSpec);
  9. for (int i = 0; i < listenerCount; i++) {
  10. listeners
  11. .get(i)
  12. .onBytesTransferred(/* source= */ this, dataSpec, isNetwork, bytesTransferred);
  13. }
  14. }

代码示例来源:origin: google/ExoPlayer

  1. /**
  2. * Skips any bytes that need skipping. Else does nothing.
  3. * <p>
  4. * This implementation is based roughly on {@code libcore.io.Streams.skipByReading()}.
  5. *
  6. * @throws InterruptedIOException If the thread is interrupted during the operation.
  7. * @throws EOFException If the end of the input stream is reached before the bytes are skipped.
  8. */
  9. private void skipInternal() throws IOException {
  10. if (bytesSkipped == bytesToSkip) {
  11. return;
  12. }
  13. while (bytesSkipped != bytesToSkip) {
  14. int readLength = (int) Math.min(bytesToSkip - bytesSkipped, SKIP_BUFFER.length);
  15. int read = castNonNull(responseByteStream).read(SKIP_BUFFER, 0, readLength);
  16. if (Thread.currentThread().isInterrupted()) {
  17. throw new InterruptedIOException();
  18. }
  19. if (read == -1) {
  20. throw new EOFException();
  21. }
  22. bytesSkipped += read;
  23. bytesTransferred(read);
  24. }
  25. }

代码示例来源:origin: google/ExoPlayer

  1. int read = castNonNull(responseByteStream).read(buffer, offset, readLength);
  2. if (read == -1) {
  3. if (bytesToRead != C.LENGTH_UNSET) {

代码示例来源:origin: google/ExoPlayer

  1. private void maybeUpdateLatency(long systemTimeUs) {
  2. if (isOutputPcm
  3. && getLatencyMethod != null
  4. && systemTimeUs - lastLatencySampleTimeUs >= MIN_LATENCY_SAMPLE_INTERVAL_US) {
  5. try {
  6. // Compute the audio track latency, excluding the latency due to the buffer (leaving
  7. // latency due to the mixer and audio hardware driver).
  8. latencyUs =
  9. castNonNull((Integer) getLatencyMethod.invoke(Assertions.checkNotNull(audioTrack)))
  10. * 1000L
  11. - bufferSizeUs;
  12. // Sanity check that the latency is non-negative.
  13. latencyUs = Math.max(latencyUs, 0);
  14. // Sanity check that the latency isn't too large.
  15. if (latencyUs > MAX_LATENCY_US) {
  16. listener.onInvalidLatency(latencyUs);
  17. latencyUs = 0;
  18. }
  19. } catch (Exception e) {
  20. // The method existed, but doesn't work. Don't try again.
  21. getLatencyMethod = null;
  22. }
  23. lastLatencySampleTimeUs = systemTimeUs;
  24. }
  25. }

代码示例来源:origin: google/ExoPlayer

  1. case MSG_ADD:
  2. MessageData<Collection<MediaSourceHolder>> addMessage =
  3. (MessageData<Collection<MediaSourceHolder>>) Util.castNonNull(msg.obj);
  4. shuffleOrder = shuffleOrder.cloneAndInsert(addMessage.index, addMessage.customData.size());
  5. addMediaSourcesInternal(addMessage.index, addMessage.customData);
  6. break;
  7. case MSG_REMOVE:
  8. MessageData<Integer> removeMessage = (MessageData<Integer>) Util.castNonNull(msg.obj);
  9. int fromIndex = removeMessage.index;
  10. int toIndex = removeMessage.customData;
  11. break;
  12. case MSG_MOVE:
  13. MessageData<Integer> moveMessage = (MessageData<Integer>) Util.castNonNull(msg.obj);
  14. shuffleOrder = shuffleOrder.cloneAndRemove(moveMessage.index, moveMessage.index + 1);
  15. shuffleOrder = shuffleOrder.cloneAndInsert(moveMessage.customData, 1);
  16. case MSG_SET_SHUFFLE_ORDER:
  17. MessageData<ShuffleOrder> shuffleOrderMessage =
  18. (MessageData<ShuffleOrder>) Util.castNonNull(msg.obj);
  19. shuffleOrder = shuffleOrderMessage.customData;
  20. scheduleListenerNotification(shuffleOrderMessage.actionOnCompletion);
  21. break;
  22. case MSG_ON_COMPLETION:
  23. List<Runnable> actionsOnCompletion = (List<Runnable>) Util.castNonNull(msg.obj);
  24. Handler handler = Assertions.checkNotNull(applicationThreadHandler);
  25. for (int i = 0; i < actionsOnCompletion.size(); i++) {

代码示例来源:origin: google/ExoPlayer

  1. @Override
  2. public void render(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException {
  3. // Keep reading available samples as long as the sample time is not too far into the future.
  4. while (!hasReadStreamToEnd() && lastTimestampUs < positionUs + SAMPLE_WINDOW_DURATION_US) {
  5. buffer.clear();
  6. int result = readSource(formatHolder, buffer, /* formatRequired= */ false);
  7. if (result != C.RESULT_BUFFER_READ || buffer.isEndOfStream()) {
  8. return;
  9. }
  10. buffer.flip();
  11. lastTimestampUs = buffer.timeUs;
  12. if (listener != null) {
  13. float[] rotation = parseMetadata(buffer.data);
  14. if (rotation != null) {
  15. Util.castNonNull(listener).onCameraMotion(lastTimestampUs - offsetUs, rotation);
  16. }
  17. }
  18. }
  19. }

相关文章