本文整理了Java中com.google.android.exoplayer2.util.Log.e()
方法的一些代码示例,展示了Log.e()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Log.e()
方法的具体详情如下:
包路径:com.google.android.exoplayer2.util.Log
类名称:Log
方法名:e
暂无
代码示例来源:origin: google/ExoPlayer
/**
* Logs an error message and exception.
*
* @param msg The message to log.
* @param tr The exception to log.
*/
protected void loge(String msg, @Nullable Throwable tr) {
Log.e(tag, msg, tr);
}
代码示例来源:origin: google/ExoPlayer
/**
* Closes the current connection quietly, if there is one.
*/
private void closeConnectionQuietly() {
if (connection != null) {
try {
connection.disconnect();
} catch (Exception e) {
Log.e(TAG, "Unexpected error while disconnecting", e);
}
connection = null;
}
}
代码示例来源:origin: google/ExoPlayer
/** @see android.util.Log#e(String, String, Throwable) */
public static void e(String tag, String message, @Nullable Throwable throwable) {
if (!logStackTraces) {
e(tag, appendThrowableMessage(message, throwable));
}
if (logLevel <= LOG_LEVEL_ERROR) {
android.util.Log.e(tag, message, throwable);
}
}
代码示例来源:origin: google/ExoPlayer
@Override
public void flush(int sampleRateHz, int channelCount, int encoding) {
try {
reset();
} catch (IOException e) {
Log.e(TAG, "Error resetting", e);
}
this.sampleRateHz = sampleRateHz;
this.channelCount = channelCount;
this.encoding = encoding;
}
代码示例来源:origin: google/ExoPlayer
private void onUtcTimestampResolutionError(IOException error) {
Log.e(TAG, "Failed to resolve UtcTiming element.", error);
// Be optimistic and continue in the hope that the device clock is correct.
processManifest(true);
}
代码示例来源:origin: google/ExoPlayer
@Override
public void onSessionStartFailed(CastSession castSession, int statusCode) {
Log.e(TAG, "Session start failed. Error code " + statusCode + ": "
+ CastUtils.getLogString(statusCode));
}
代码示例来源:origin: google/ExoPlayer
@Override
public void onSessionResumeFailed(CastSession castSession, int statusCode) {
Log.e(TAG, "Session resume failed. Error code " + statusCode + ": "
+ CastUtils.getLogString(statusCode));
}
代码示例来源:origin: google/ExoPlayer
@Override
public TrackOutput track(int id, int type) {
for (int i = 0; i < trackTypes.length; i++) {
if (type == trackTypes[i]) {
return sampleQueues[i];
}
}
Log.e(TAG, "Unmatched track of type: " + type);
return new DummyTrackOutput();
}
代码示例来源:origin: google/ExoPlayer
/**
* Optional call to warm the codec cache for a given mime type.
* <p>
* Calling this method may speed up subsequent calls to {@link #getDecoderInfo(String, boolean)}
* and {@link #getDecoderInfos(String, boolean)}.
*
* @param mimeType The mime type.
* @param secure Whether the decoder is required to support secure decryption. Always pass false
* unless secure decryption really is required.
*/
public static void warmDecoderInfoCache(String mimeType, boolean secure) {
try {
getDecoderInfos(mimeType, secure);
} catch (DecoderQueryException e) {
// Codec warming is best effort, so we can swallow the exception.
Log.e(TAG, "Codec warming failed", e);
}
}
代码示例来源:origin: google/ExoPlayer
private void sendMessageToTargetThread(final PlayerMessage message) {
Handler handler = message.getHandler();
handler.post(
() -> {
try {
deliverMessage(message);
} catch (ExoPlaybackException e) {
Log.e(TAG, "Unexpected error delivering message on external thread.", e);
throw new RuntimeException(e);
}
});
}
代码示例来源:origin: google/ExoPlayer
private void saveActions() {
if (released) {
return;
}
final DownloadAction[] actions = new DownloadAction[tasks.size()];
for (int i = 0; i < tasks.size(); i++) {
actions[i] = tasks.get(i).action;
}
fileIOHandler.post(
() -> {
try {
actionFile.store(actions);
logd("Actions persisted.");
} catch (IOException e) {
Log.e(TAG, "Persisting actions failed.", e);
}
});
}
代码示例来源:origin: google/ExoPlayer
private boolean restoreKeys() {
try {
mediaDrm.restoreKeys(sessionId, offlineLicenseKeySetId);
return true;
} catch (Exception e) {
Log.e(TAG, "Error trying to restore Widevine keys.", e);
onError(e);
}
return false;
}
代码示例来源:origin: google/ExoPlayer
@Override
public void requirementsNotMet(RequirementsWatcher requirementsWatcher) {
try {
notifyService();
} catch (Exception e) {
/* Do nothing. The service isn't running anyway. */
}
if (scheduler != null) {
String servicePackage = context.getPackageName();
boolean success = scheduler.schedule(requirements, servicePackage, ACTION_RESTART);
if (!success) {
Log.e(TAG, "Scheduling downloads failed.");
}
}
}
代码示例来源:origin: google/ExoPlayer
@Override
public void handleBuffer(ByteBuffer buffer) {
try {
maybePrepareFile();
writeBuffer(buffer);
} catch (IOException e) {
Log.e(TAG, "Error writing data", e);
}
}
代码示例来源:origin: google/ExoPlayer
@Override
public synchronized void release() {
if (released) {
return;
}
listeners.clear();
removeStaleSpans();
try {
index.store();
} catch (CacheException e) {
Log.e(TAG, "Storing index file failed", e);
} finally {
unlockFolder(cacheDir);
released = true;
}
}
代码示例来源:origin: google/ExoPlayer
@Override
public synchronized void onSpanRemoved(Cache cache, CacheSpan span) {
Region removedRegion = new Region(span.position, span.position + span.length);
// Look up a region this span falls into.
Region floorRegion = regions.floor(removedRegion);
if (floorRegion == null) {
Log.e(TAG, "Removed a span we were not aware of");
return;
}
// Remove it.
regions.remove(floorRegion);
// Add new floor and ceiling regions, if necessary.
if (floorRegion.startOffset < removedRegion.startOffset) {
Region newFloorRegion = new Region(floorRegion.startOffset, removedRegion.startOffset);
int index = Arrays.binarySearch(chunkIndex.offsets, newFloorRegion.endOffset);
newFloorRegion.endOffsetIndex = index < 0 ? -index - 2 : index;
regions.add(newFloorRegion);
}
if (floorRegion.endOffset > removedRegion.endOffset) {
Region newCeilingRegion = new Region(removedRegion.endOffset + 1, floorRegion.endOffset);
newCeilingRegion.endOffsetIndex = floorRegion.endOffsetIndex;
regions.add(newCeilingRegion);
}
}
代码示例来源:origin: google/ExoPlayer
public void release() {
updatePeriodTrackSelectorResult(null);
try {
if (info.id.endPositionUs != C.TIME_END_OF_SOURCE) {
mediaSource.releasePeriod(((ClippingMediaPeriod) mediaPeriod).mediaPeriod);
} else {
mediaSource.releasePeriod(mediaPeriod);
}
} catch (RuntimeException e) {
// There's nothing we can do.
Log.e(TAG, "Period release failed.", e);
}
}
代码示例来源:origin: google/ExoPlayer
@Override
public void onResult(@NonNull MediaChannelResult result) {
int statusCode = result.getStatus().getStatusCode();
if (statusCode != CastStatusCodes.SUCCESS && statusCode != CastStatusCodes.REPLACED) {
Log.e(TAG, "Seek failed. Error code " + statusCode + ": "
+ CastUtils.getLogString(statusCode));
}
if (--pendingSeekCount == 0) {
pendingSeekWindowIndex = C.INDEX_UNSET;
pendingSeekPositionMs = C.TIME_UNSET;
for (EventListener listener : listeners) {
listener.onSeekProcessed();
}
}
}
}
代码示例来源:origin: google/ExoPlayer
private void maybeNotifyInternalError(String name, Exception cause) {
String message = "Internal error in " + name;
Log.e(TAG, message, cause);
// We can't recover from an unexpected error in general, so skip all remaining ads.
if (adPlaybackState == null) {
adPlaybackState = AdPlaybackState.NONE;
} else {
for (int i = 0; i < adPlaybackState.adGroupCount; i++) {
adPlaybackState = adPlaybackState.withSkippedAdGroup(i);
}
}
updateAdPlaybackState();
if (eventListener != null) {
eventListener.onAdLoadError(
AdLoadException.createForUnexpected(new RuntimeException(message, cause)),
new DataSpec(adTagUri));
}
}
代码示例来源:origin: google/ExoPlayer
/**
* If there is an OpenGl error, logs the error and if {@link
* ExoPlayerLibraryInfo#GL_ASSERTIONS_ENABLED} is true throws a {@link RuntimeException}.
*/
public static void checkGlError() {
int error = GLES20.glGetError();
int lastError;
if (error != GLES20.GL_NO_ERROR) {
do {
lastError = error;
Log.e(TAG, "glError " + gluErrorString(lastError));
error = GLES20.glGetError();
} while (error != GLES20.GL_NO_ERROR);
if (ExoPlayerLibraryInfo.GL_ASSERTIONS_ENABLED) {
throw new RuntimeException("glError " + gluErrorString(lastError));
}
}
}
内容来源于网络,如有侵权,请联系作者删除!