private MediaCodec( @NonNull String name, boolean nameIsType, boolean encoder) { Log.d(TAG , "set hhh media.player.route MediaCodecJava-"); SystemProperties.set("media.player.route","MediaCodecJava-"); Looper looper;
时间: 2024-04-26 07:25:01 浏览: 142
这是 Android 平台中 MediaCodec 类的构造函数。它采用三个参数:name、nameIsType 和 encoder。其中,name 表示要创建的 MediaCodec 对象的名称;nameIsType 表示 name 参数是否代表媒体类型(例如,video/avc);encoder 表示创建的 MediaCodec 对象是否是编码器。
在函数体内部,首先调用 SystemProperties.set() 函数设置 "media.player.route" 属性值为 "MediaCodecJava-",以标识当前媒体编解码器所在的进程名。然后,它使用 Looper.myLooper() 函数获取当前线程的消息循环,并将其赋值给 looper 变量。
MediaCodec 类是 Android 平台上用于音视频编解码的核心类之一,该构造函数的目的是为 MediaCodec 对象初始化一些默认属性,并获取当前线程的消息循环以便在后续的操作中使用。
相关问题
@@ -21580,6 +21580,7 @@ public final class MediaCodec { method public void setOnFrameRenderedListener(@Nullable android.media.MediaCodec.OnFrameRenderedListener, @Nullable android.os.Handler); method public void setOutputSurface(@NonNull android.view.Surface); method public void setParameters(@Nullable android.os.Bundle); + method public void setSkyMediaStatus(@Nullable String); method public void setVideoScalingMode(int); method public void signalEndOfInputStream(); method public void start(); @@ -22923,6 +22924,7 @@ public class MediaPlayer implements andr method public void setPlaybackParams(@NonNull android.media.PlaybackParams); method public boolean setPreferredDevice(android.media.AudioDeviceInfo); method public void setScreenOnWhilePlaying(boolean); + method public void setSkyMediaStatus(@Nullable String); method public void setSurface(android.view.Surface); method public void setSyncParams(@NonNull android.media.SyncParams); method public void setVideoScalingMode(int); ****************************** You have tried to change the API from what has been previously approved.
这段代码中的注释提示出现了一个警告,说你试图更改之前已经批准的 API。这可能意味着你在修改某个已经发布的库或应用程序,但是你修改的代码或者新增的方法与之前的版本不兼容,可能会导致一些问题。在这种情况下,你需要仔细检查代码,确保修改后的 API 能够与之前的版本兼容,并且不会影响到其他的代码。同时,你还需要确保遵守相应的开发规范和流程,避免出现类似的问题。
06-12 16:01:50.335 25052 25443 D MediaCodec-java: start --start 06-12 16:01:50.338 25052 25443 D MediaCodec-java: Current process == com.ktcp.video 06-12 16:01:50.339 25052 25443 I com.ktcp.video: Rejecting re-init on previously-failed class java.lang.Class<com.skydebug.ftrace.FtraceSys>: java.lang.UnsatisfiedLinkError: dlopen failed: library "libskytrace.so" not found 06-12 16:01:50.339 25052 25443 I com.ktcp.video: (Throwable with no stack trace) 06-12 16:01:50.340 25052 25443 W System.err: java.lang.NoClassDefFoundError: com.skydebug.ftrace.FtraceSys 06-12 16:01:50.340 25052 25443 W System.err: at android.media.MediaCodec.setSkyMediaStatus(MediaCodec.java:2023) 06-12 16:01:50.340 25052 25443 W System.err: at android.media.MediaCodec.start(MediaCodec.java:2331) 06-12 16:01:50.340 25052 25443 W System.err: at com.tencent.thumbplayer.core.codec.tmediacodec.codec.DirectCodecWrapper.start(DirectCodecWrapper.java:82) 06-12 16:01:50.340 25052 25443 W System.err: at com.tencent.thumbplayer.core.codec.tmediacodec.TMediaCodec.start(TMediaCodec.java:136) 06-12 16:01:50.340 25052 25443 W System.err: at com.tencent.thumbplayer.core.codec.decoder.TPBaseMediaCodecDecoder.initMediaCodecInternal(TPBaseMediaCodecDecoder.java:317) 06-12 16:01:50.340 25052 25443 W System.err: at com.tencent.thumbplayer.core.codec.decoder.TPBaseMediaCodecDecoder.startDecoder(TPBaseMediaCodecDecoder.java:349) 06-12 16:01:50.340 25052 25443 W System.err: at com.tencent.thumbplayer.core.codec.decoder.TPMediaCodecManager.initVideoMediaCodec(TPMediaCodecManager.java:112) 06-12 16:01:50.340 25052 25443 W System.err: Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "libskytrace.so" not found 06-12 16:01:50.340 25052 25443 W System.err: at java.lang.Runtime.loadLibrary0(Runtime.java:1088) 06-12 16:01:50.340 25052 25443 W System.err: at java.lang.Runtime.loadLibrary0(Runtime.java:998) 06-12 16:01:50.340 25052 25443 W System.err: at java.lang.System.loadLibrary(System.java:1656) 06-12 16:01:50.340 25052 25443 W System.err: at com.skydebug.ftrace.FtraceSys.<clinit>(FtraceSys.java:25) 06-12 16:01:50.340 25052 25443 W System.err: at com.skydebug.ftrace.FtraceSys.PointWriteFile(FtraceSys.java:73) 06-12 16:01:50.340 25052 25443 W System.err: ... 7 more
抱歉,这段代码看起来像是 Android 应用程序的日志,但是它是一个 MediaCodec 的错误日志。更具体地说,这个错误是由于一个名为 "libskytrace.so" 的库没有被找到而引起的。这个库可能是你的应用或者是第三方库所依赖的。你需要确认这个库是否存在,并且是否被正确地加载到应用程序中。
阅读全文