Clean error msg

pull/605/head
jhengazuji 4 months ago
parent 71ca71a6e8
commit 4c1ff7a65d
  1. 2
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  2. 93
      app/src/main/java/com/fongmi/android/tv/player/exo/ErrorMsgProvider.java
  3. 44
      app/src/main/res/values-zh-rCN/error.xml
  4. 44
      app/src/main/res/values-zh-rTW/error.xml
  5. 44
      app/src/main/res/values/error.xml

@ -683,7 +683,7 @@ public class Players implements Player.Listener, ParseCallback {
setFormat(ExoUtil.getMimeType(error.errorCode));
break;
default:
ErrorEvent.extract(tag, error.getErrorCodeName());
ErrorEvent.extract(tag, provider.get(error));
break;
}
}

@ -1,74 +1,39 @@
package com.fongmi.android.tv.player.exo;
import android.content.res.Resources;
import androidx.media3.common.PlaybackException;
import androidx.media3.exoplayer.mediacodec.MediaCodecRenderer;
import androidx.media3.exoplayer.mediacodec.MediaCodecUtil;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
public class ErrorMsgProvider {
private final Resources resources;
public ErrorMsgProvider() {
this.resources = App.get().getResources();
}
public String get(PlaybackException e) {
if (e.getCause() instanceof MediaCodecRenderer.DecoderInitializationException e2) return custom(e2);
return resources.getString(getId(e.errorCode));
}
private String custom(MediaCodecRenderer.DecoderInitializationException e) {
if (e.codecInfo != null) return resources.getString(R.string.error_instantiating_decoder, e.codecInfo.name);
if (e.getCause() instanceof MediaCodecUtil.DecoderQueryException) return resources.getString(R.string.error_querying_decoders);
else if (e.secureDecoderRequired) return resources.getString(R.string.error_no_secure_decoder, e.mimeType);
else return resources.getString(R.string.error_no_decoder, e.mimeType);
}
private int getId(int errorCode) {
return switch (errorCode) {
case PlaybackException.ERROR_CODE_REMOTE_ERROR -> R.string.error_remote_error;
case PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW -> R.string.error_behind_live_window;
case PlaybackException.ERROR_CODE_TIMEOUT -> R.string.error_timeout;
case PlaybackException.ERROR_CODE_FAILED_RUNTIME_CHECK -> R.string.error_failed_runtime_check;
case PlaybackException.ERROR_CODE_IO_UNSPECIFIED -> R.string.error_io_unspecified;
case PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_FAILED -> R.string.error_io_network_connection_failed;
case PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT -> R.string.error_io_network_connection_timeout;
case PlaybackException.ERROR_CODE_IO_INVALID_HTTP_CONTENT_TYPE -> R.string.error_io_invalid_http_content_type;
case PlaybackException.ERROR_CODE_IO_BAD_HTTP_STATUS -> R.string.error_io_bad_http_status;
case PlaybackException.ERROR_CODE_IO_FILE_NOT_FOUND -> R.string.error_io_file_not_found;
case PlaybackException.ERROR_CODE_IO_NO_PERMISSION -> R.string.error_io_no_permission;
case PlaybackException.ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED -> R.string.error_io_cleartext_not_permitted;
case PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE -> R.string.error_io_read_position_out_of_range;
case PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED -> R.string.error_parsing_container_malformed;
case PlaybackException.ERROR_CODE_PARSING_MANIFEST_MALFORMED -> R.string.error_parsing_manifest_malformed;
case PlaybackException.ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED -> R.string.error_parsing_container_unsupported;
case PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED -> R.string.error_parsing_manifest_unsupported;
case PlaybackException.ERROR_CODE_DECODER_INIT_FAILED -> R.string.error_decoder_init_failed;
case PlaybackException.ERROR_CODE_DECODER_QUERY_FAILED -> R.string.error_decoder_query_failed;
case PlaybackException.ERROR_CODE_DECODING_FAILED -> R.string.error_decoding_failed;
case PlaybackException.ERROR_CODE_DECODING_FORMAT_EXCEEDS_CAPABILITIES -> R.string.error_decoding_format_exceeds_capabilities;
case PlaybackException.ERROR_CODE_DECODING_FORMAT_UNSUPPORTED -> R.string.error_decoding_format_unsupported;
case PlaybackException.ERROR_CODE_DECODING_RESOURCES_RECLAIMED -> R.string.error_decoding_resources_reclaimed;
case PlaybackException.ERROR_CODE_AUDIO_TRACK_INIT_FAILED -> R.string.error_audio_track_init_failed;
case PlaybackException.ERROR_CODE_AUDIO_TRACK_WRITE_FAILED -> R.string.error_audio_track_write_failed;
case PlaybackException.ERROR_CODE_AUDIO_TRACK_OFFLOAD_WRITE_FAILED -> R.string.error_audio_track_offload_write_failed;
case PlaybackException.ERROR_CODE_AUDIO_TRACK_OFFLOAD_INIT_FAILED -> R.string.error_audio_track_offload_init_failed;
case PlaybackException.ERROR_CODE_DRM_UNSPECIFIED -> R.string.error_drm_unspecified;
case PlaybackException.ERROR_CODE_DRM_PROVISIONING_FAILED -> R.string.error_drm_provisioning_failed;
case PlaybackException.ERROR_CODE_DRM_CONTENT_ERROR -> R.string.error_drm_content_error;
case PlaybackException.ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED -> R.string.error_drm_license_acquisition_failed;
case PlaybackException.ERROR_CODE_DRM_DISALLOWED_OPERATION -> R.string.error_drm_disallowed_operation;
case PlaybackException.ERROR_CODE_DRM_SYSTEM_ERROR -> R.string.error_drm_system_error;
case PlaybackException.ERROR_CODE_DRM_DEVICE_REVOKED -> R.string.error_drm_device_revoked;
case PlaybackException.ERROR_CODE_DRM_LICENSE_EXPIRED -> R.string.error_drm_license_expired;
case PlaybackException.ERROR_CODE_VIDEO_FRAME_PROCESSOR_INIT_FAILED -> R.string.error_video_frame_processor_init_failed;
case PlaybackException.ERROR_CODE_VIDEO_FRAME_PROCESSING_FAILED -> R.string.error_video_frame_processing_failed;
default -> R.string.error_unspecified;
return switch (e.errorCode) {
case PlaybackException.ERROR_CODE_UNSPECIFIED -> "Unspecified";
case PlaybackException.ERROR_CODE_IO_UNSPECIFIED -> "IO Unspecified";
case PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_FAILED -> "Network Connection Failed";
case PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT -> "Network Connection Timeout";
case PlaybackException.ERROR_CODE_IO_INVALID_HTTP_CONTENT_TYPE -> "Invalid HTTP Content Type";
case PlaybackException.ERROR_CODE_IO_BAD_HTTP_STATUS -> "Bad HTTP Status";
case PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE -> "Read Position Out Of Range";
case PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED -> "Container Malformed";
case PlaybackException.ERROR_CODE_PARSING_MANIFEST_MALFORMED -> "Manifest Malformed";
case PlaybackException.ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED -> "Container Unsupported";
case PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED -> "Manifest Unsupported";
case PlaybackException.ERROR_CODE_DECODER_INIT_FAILED -> "Decoder Init Failed";
case PlaybackException.ERROR_CODE_DECODER_QUERY_FAILED -> "Decoder Query Failed";
case PlaybackException.ERROR_CODE_DECODING_FAILED -> "Decoding Failed";
case PlaybackException.ERROR_CODE_DECODING_FORMAT_EXCEEDS_CAPABILITIES -> "Decoding Format Exceeds Capabilities";
case PlaybackException.ERROR_CODE_DECODING_FORMAT_UNSUPPORTED -> "Decoding Format Unsupported";
case PlaybackException.ERROR_CODE_DECODING_RESOURCES_RECLAIMED -> "Decoding Resources Reclaimed";
case PlaybackException.ERROR_CODE_AUDIO_TRACK_INIT_FAILED -> "Audio Track Init Failed";
case PlaybackException.ERROR_CODE_AUDIO_TRACK_WRITE_FAILED -> "Audio Track Write Failed";
case PlaybackException.ERROR_CODE_DRM_UNSPECIFIED -> "DRM Unspecified";
case PlaybackException.ERROR_CODE_DRM_PROVISIONING_FAILED -> "DRM Provisioning Failed";
case PlaybackException.ERROR_CODE_DRM_CONTENT_ERROR -> "DRM Content Error";
case PlaybackException.ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED -> "DRM License Acquisition Failed";
case PlaybackException.ERROR_CODE_DRM_DISALLOWED_OPERATION -> "DRM Disallowed Operation";
case PlaybackException.ERROR_CODE_DRM_SYSTEM_ERROR -> "DRM System Error";
case PlaybackException.ERROR_CODE_DRM_DEVICE_REVOKED -> "DRM Device Revoked";
case PlaybackException.ERROR_CODE_DRM_LICENSE_EXPIRED -> "DRM License Expired";
default -> e.getErrorCodeName();
};
}
}

@ -1,44 +0,0 @@
<resources xmlns:xliff="http://schemas.android.com/apk/res-auto">
<string name="error_unspecified">发生未知错误</string>
<string name="error_remote_error">发生远程错误</string>
<string name="error_behind_live_window">直播内容已过期</string>
<string name="error_timeout">操作超时</string>
<string name="error_failed_runtime_check">系统检查失败</string>
<string name="error_io_unspecified">发生未知网络错误</string>
<string name="error_io_network_connection_failed">网络连接失败</string>
<string name="error_io_network_connection_timeout">网络连接超时</string>
<string name="error_io_invalid_http_content_type">内容类型无效</string>
<string name="error_io_bad_http_status">服务器发生错误</string>
<string name="error_io_file_not_found">找不到文件</string>
<string name="error_io_no_permission">您没有访问权限</string>
<string name="error_io_cleartext_not_permitted">不允许不安全的连接</string>
<string name="error_io_read_position_out_of_range">无法读取数据</string>
<string name="error_parsing_container_malformed">媒体文件已损坏</string>
<string name="error_parsing_manifest_malformed">媒体信息已损坏</string>
<string name="error_parsing_container_unsupported">不支持的文件格式</string>
<string name="error_parsing_manifest_unsupported">不支持的媒体类型</string>
<string name="error_decoder_init_failed">解码器初始化失败</string>
<string name="error_decoder_query_failed">解码器查询失败</string>
<string name="error_decoding_failed">解码失败</string>
<string name="error_decoding_format_exceeds_capabilities">解码格式超出设备能力</string>
<string name="error_decoding_format_unsupported">不支持的解码格式</string>
<string name="error_decoding_resources_reclaimed">解码资源已回收</string>
<string name="error_audio_track_init_failed">无法初始化音频</string>
<string name="error_audio_track_write_failed">无法写入音频数据</string>
<string name="error_audio_track_offload_write_failed">音频硬件解码写入错误</string>
<string name="error_audio_track_offload_init_failed">音频硬件解码初始化错误</string>
<string name="error_drm_unspecified">未指定的数字版权管理错误</string>
<string name="error_drm_provisioning_failed">数字版权管理配制失败</string>
<string name="error_drm_content_error">数字版权管理内容错误</string>
<string name="error_drm_license_acquisition_failed">数字版权管理授权获取失败</string>
<string name="error_drm_disallowed_operation">数字版权管理不允许的操作</string>
<string name="error_drm_system_error">数字版权管理系统错误</string>
<string name="error_drm_device_revoked">数字版权管理设备已撤销</string>
<string name="error_drm_license_expired">数字版权管理授权已过期</string>
<string name="error_video_frame_processor_init_failed">无法初始化视频处理器</string>
<string name="error_video_frame_processing_failed">视频处理失败</string>
<string name="error_no_decoder">此设备不支持 <xliff:g id="mime_type">%1$s</xliff:g> 格式</string>
<string name="error_no_secure_decoder">此设备无法安全播放 <xliff:g id="mime_type">%1$s</xliff:g> 格式</string>
<string name="error_querying_decoders">无法查询设备的播放功能</string>
<string name="error_instantiating_decoder">无法启用播放组件 <xliff:g id="decoder_name">%1$s</xliff:g></string>
</resources>

@ -1,44 +0,0 @@
<resources xmlns:xliff="http://schemas.android.com/apk/res-auto">
<string name="error_unspecified">發生未知錯誤</string>
<string name="error_remote_error">發生遠端錯誤</string>
<string name="error_behind_live_window">直播內容已過期</string>
<string name="error_timeout">操作逾時</string>
<string name="error_failed_runtime_check">系統檢查失敗</string>
<string name="error_io_unspecified">發生未知網路錯誤</string>
<string name="error_io_network_connection_failed">網路連線失敗</string>
<string name="error_io_network_connection_timeout">網路連線逾時</string>
<string name="error_io_invalid_http_content_type">內容類型無效</string>
<string name="error_io_bad_http_status">伺服器發生錯誤</string>
<string name="error_io_file_not_found">找不到檔案</string>
<string name="error_io_no_permission">您沒有存取權限</string>
<string name="error_io_cleartext_not_permitted">不允許不安全的連線</string>
<string name="error_io_read_position_out_of_range">無法讀取資料</string>
<string name="error_parsing_container_malformed">媒體檔案已損毀</string>
<string name="error_parsing_manifest_malformed">媒體資訊已損毀</string>
<string name="error_parsing_container_unsupported">不支援的檔案格式</string>
<string name="error_parsing_manifest_unsupported">不支援的媒體類型</string>
<string name="error_decoder_init_failed">解碼器初始化失敗</string>
<string name="error_decoder_query_failed">解碼器查詢失敗</string>
<string name="error_decoding_failed">解碼失敗</string>
<string name="error_decoding_format_exceeds_capabilities">解碼格式超出裝置能力</string>
<string name="error_decoding_format_unsupported">不支援的解碼格式</string>
<string name="error_decoding_resources_reclaimed">解碼資源已回收</string>
<string name="error_audio_track_init_failed">無法初始化音訊</string>
<string name="error_audio_track_write_failed">無法寫入音訊資料</string>
<string name="error_audio_track_offload_write_failed">音訊硬體解碼寫入錯誤</string>
<string name="error_audio_track_offload_init_failed">音訊硬體解碼初始化錯誤</string>
<string name="error_drm_unspecified">未指定的數位版權管理錯誤</string>
<string name="error_drm_provisioning_failed">數位版權管理佈建失敗</string>
<string name="error_drm_content_error">數位版權管理內容錯誤</string>
<string name="error_drm_license_acquisition_failed">數位版權管理授權獲取失敗</string>
<string name="error_drm_disallowed_operation">數位版權管理不允許的操作</string>
<string name="error_drm_system_error">數位版權管理系統錯誤</string>
<string name="error_drm_device_revoked">數位版權管理裝置已撤銷</string>
<string name="error_drm_license_expired">數位版權管理授權已過期</string>
<string name="error_video_frame_processor_init_failed">無法初始化影片處理器</string>
<string name="error_video_frame_processing_failed">影片處理失敗</string>
<string name="error_no_decoder">此裝置不支援 <xliff:g id="mime_type">%1$s</xliff:g> 格式</string>
<string name="error_no_secure_decoder">此裝置無法安全播放 <xliff:g id="mime_type">%1$s</xliff:g> 格式</string>
<string name="error_querying_decoders">無法查詢裝置的播放功能</string>
<string name="error_instantiating_decoder">無法啟用播放元件 <xliff:g id="decoder_name">%1$s</xliff:g></string>
</resources>

@ -1,44 +0,0 @@
<resources xmlns:xliff="http://schemas.android.com/apk/res-auto">
<string name="error_unspecified">An unknown error occurred</string>
<string name="error_remote_error">A remote error occurred</string>
<string name="error_behind_live_window">Content is behind live window</string>
<string name="error_timeout">The operation timed out</string>
<string name="error_failed_runtime_check">A system check failed</string>
<string name="error_io_unspecified">An unknown network error occurred</string>
<string name="error_io_network_connection_failed">Network connection failed</string>
<string name="error_io_network_connection_timeout">Network connection timed out</string>
<string name="error_io_invalid_http_content_type">Invalid content type</string>
<string name="error_io_bad_http_status">Server error occurred</string>
<string name="error_io_file_not_found">File not found</string>
<string name="error_io_no_permission">You do not have permission to access this</string>
<string name="error_io_cleartext_not_permitted">Insecure connection not permitted</string>
<string name="error_io_read_position_out_of_range">Unable to read data</string>
<string name="error_parsing_container_malformed">Media file is corrupted</string>
<string name="error_parsing_manifest_malformed">Media info is corrupted</string>
<string name="error_parsing_container_unsupported">Unsupported file format</string>
<string name="error_parsing_manifest_unsupported">Unsupported media type</string>
<string name="error_decoder_init_failed">Decoder initialization failed</string>
<string name="error_decoder_query_failed">Decoder query failed</string>
<string name="error_decoding_failed">Decoding failed</string>
<string name="error_decoding_format_exceeds_capabilities">Decoding format exceeds capabilities</string>
<string name="error_decoding_format_unsupported">Unsupported decoding format</string>
<string name="error_decoding_resources_reclaimed">Decoding resources reclaimed</string>
<string name="error_audio_track_init_failed">Could not initialize audio</string>
<string name="error_audio_track_write_failed">Could not write audio data</string>
<string name="error_audio_track_offload_write_failed">Audio hardware decoding write error</string>
<string name="error_audio_track_offload_init_failed">Audio hardware decoding init error</string>
<string name="error_drm_unspecified">Unspecified DRM error</string>
<string name="error_drm_provisioning_failed">DRM provisioning failed</string>
<string name="error_drm_content_error">DRM content error</string>
<string name="error_drm_license_acquisition_failed">DRM license acquisition failed</string>
<string name="error_drm_disallowed_operation">DRM disallowed operation</string>
<string name="error_drm_system_error">DRM system error</string>
<string name="error_drm_device_revoked">DRM device revoked</string>
<string name="error_drm_license_expired">DRM license expired</string>
<string name="error_video_frame_processor_init_failed">Could not initialize video processor</string>
<string name="error_video_frame_processing_failed">Video processing failed</string>
<string name="error_no_decoder">This device does not provide a decoder for <xliff:g id="mime_type">%1$s</xliff:g></string>
<string name="error_no_secure_decoder">This device does not provide a secure decoder for <xliff:g id="mime_type">%1$s</xliff:g></string>
<string name="error_querying_decoders">Unable to query device decoders</string>
<string name="error_instantiating_decoder">Unable to instantiate decoder <xliff:g id="decoder_name">%1$s</xliff:g></string>
</resources>
Loading…
Cancel
Save