实例介绍
问题现象是webrtc,视频连接正常,但是视频是黑屏,不显示。原因就是原生webrtc默认支持使用了高通,英特尔和三星CPU等国际大厂的机型,很多小众的机型或者新生的CPU没有开启支持,需要我们手动添加。 修改文件:HardwareVideoEncoderFactory.java和MediaCodecVideoDecoderFactory。 依赖包是java源码,把之前以来webrtc的去掉,直接导入源码即可使用。 修改点:兼容了多种cpu的手机和电视盒子,如小米4电视,天猫魔盒,华为手机等等。 "OMX.qcom.", "OMX.Intel.", "OMX.Exynos." ,"OMX.Nvidia.H264." /*Nexus 7(2012), Nexus 9, Tegra 3, Tegra K1*/ ,"OMX.ittiam.video." /*Xiaomi Mi 1s*/ ,"OMX.SEC.avc." /*Exynos 3110, Nexus S*/ ,"OMX.IMG.MSVDX." /*Huawei Honor 6, Kirin 920*/ ,"OMX.k3.video." /*Huawei Honor 3C, Kirin 910*/ ,"OMX.hisi." /*Huawei Premium Phones, Kirin 950*/ ,"OMX.TI.DUCATI1." /*Galaxy Nexus, Ti OMAP4460*/ ,"OMX.MTK.VIDEO." /*no sense*/ ,"OMX.LG.decoder." /*no sense*/ ,"OMX.rk.video_decoder."/*Youku TVBox. our service doesn't need this */ ,"OMX.amlogic." /*晶晨芯片*/
【实例截图】
【核心代码】
16359647705790839248.rar
└── libttsa
├── build.gradle
├── libs
│ ├── arm64-v8a
│ │ └── libjingle_peerconnection_so.so
│ ├── armeabi-v7a
│ │ └── libjingle_peerconnection_so.so
│ ├── x86
│ │ └── libjingle_peerconnection_so.so
│ └── x86_64
│ └── libjingle_peerconnection_so.so
├── libttsa.iml
├── proguard-rules.pro
└── src
└── main
├── AndroidManifest.xml
├── java
│ ├── modules
│ │ └── audio_device
│ │ └── android
│ │ └── java
│ │ └── src
│ │ └── org
│ │ └── webrtc
│ │ └── voiceengine
│ │ ├── BuildInfo.java
│ │ ├── WebRtcAudioEffects.java
│ │ ├── WebRtcAudioManager.java
│ │ ├── WebRtcAudioRecord.java
│ │ ├── WebRtcAudioTrack.java
│ │ └── WebRtcAudioUtils.java
│ ├── rtc_base
│ │ └── java
│ │ └── src
│ │ └── org
│ │ └── webrtc
│ │ ├── ContextUtils.java
│ │ ├── Loggable.java
│ │ ├── Logging.java
│ │ ├── OWNERS
│ │ ├── Size.java
│ │ └── ThreadUtils.java
│ └── sdk
│ └── android
│ ├── api
│ │ └── org
│ │ └── webrtc
│ │ ├── audio
│ │ │ ├── AudioDeviceModule.java
│ │ │ ├── JavaAudioDeviceModule.java
│ │ │ └── LegacyAudioDeviceModule.java
│ │ ├── AudioDecoderFactoryFactory.java
│ │ ├── AudioEncoderFactoryFactory.java
│ │ ├── AudioProcessingFactory.java
│ │ ├── AudioSource.java
│ │ ├── AudioTrack.java
│ │ ├── BuiltinAudioDecoderFactoryFactory.java
│ │ ├── BuiltinAudioEncoderFactoryFactory.java
│ │ ├── CallSessionFileRotatingLogSink.java
│ │ ├── Camera1Capturer.java
│ │ ├── Camera1Enumerator.java
│ │ ├── Camera2Capturer.java
│ │ ├── Camera2Enumerator.java
│ │ ├── CameraEnumerationAndroid.java
│ │ ├── CameraEnumerator.java
│ │ ├── CameraVideoCapturer.java
│ │ ├── CapturerObserver.java
│ │ ├── CryptoOptions.java
│ │ ├── DataChannel.java
│ │ ├── DefaultVideoDecoderFactory.java
│ │ ├── DefaultVideoEncoderFactory.java
│ │ ├── DtmfSender.java
│ │ ├── EglBase10.java
│ │ ├── EglBase14.java
│ │ ├── EglBase.java
│ │ ├── EglRenderer.java
│ │ ├── EncodedImage.java
│ │ ├── FecControllerFactoryFactoryInterface.java
│ │ ├── FileVideoCapturer.java
│ │ ├── FrameDecryptor.java
│ │ ├── FrameEncryptor.java
│ │ ├── GlRectDrawer.java
│ │ ├── GlShader.java
│ │ ├── GlTextureFrameBuffer.java
│ │ ├── GlUtil.java
│ │ ├── HardwareVideoDecoderFactory.java
│ │ ├── HardwareVideoEncoderFactory.java
│ │ ├── IceCandidate.java
│ │ ├── JavaI420Buffer.java
│ │ ├── LibvpxVp8Decoder.java
│ │ ├── LibvpxVp8Encoder.java
│ │ ├── LibvpxVp9Decoder.java
│ │ ├── LibvpxVp9Encoder.java
│ │ ├── MediaCodecVideoDecoder.java
│ │ ├── MediaCodecVideoEncoder.java
│ │ ├── MediaConstraints.java
│ │ ├── MediaSource.java
│ │ ├── MediaStream.java
│ │ ├── MediaStreamTrack.java
│ │ ├── MediaTransportFactoryFactory.java
│ │ ├── Metrics.java
│ │ ├── NativeLibraryLoader.java
│ │ ├── NativePeerConnectionFactory.java
│ │ ├── NetworkMonitorAutoDetect.java
│ │ ├── NetworkMonitor.java
│ │ ├── OWNERS
│ │ ├── PeerConnectionDependencies.java
│ │ ├── PeerConnectionFactory.java
│ │ ├── PeerConnection.java
│ │ ├── PlatformSoftwareVideoDecoderFactory.java
│ │ ├── Predicate.java
│ │ ├── RefCounted.java
│ │ ├── RendererCommon.java
│ │ ├── RtcCertificatePem.java
│ │ ├── RTCStatsCollectorCallback.java
│ │ ├── RTCStats.java
│ │ ├── RTCStatsReport.java
│ │ ├── RtpParameters.java
│ │ ├── RtpReceiver.java
│ │ ├── RtpSender.java
│ │ ├── RtpTransceiver.java
│ │ ├── ScreenCapturerAndroid.java
│ │ ├── SdpObserver.java
│ │ ├── SessionDescription.java
│ │ ├── SoftwareVideoDecoderFactory.java
│ │ ├── SoftwareVideoEncoderFactory.java
│ │ ├── SSLCertificateVerifier.java
│ │ ├── StatsObserver.java
│ │ ├── StatsReport.java
│ │ ├── SurfaceEglRenderer.java
│ │ ├── SurfaceTextureHelper.java
│ │ ├── SurfaceViewRenderer.java
│ │ ├── TextureBufferImpl.java
│ │ ├── TimestampAligner.java
│ │ ├── TurnCustomizer.java
│ │ ├── VideoCapturer.java
│ │ ├── VideoCodecInfo.java
│ │ ├── VideoCodecStatus.java
│ │ ├── VideoDecoderFactory.java
│ │ ├── VideoDecoderFallback.java
│ │ ├── VideoDecoder.java
│ │ ├── VideoEncoderFactory.java
│ │ ├── VideoEncoderFallback.java
│ │ ├── VideoEncoder.java
│ │ ├── VideoFileRenderer.java
│ │ ├── VideoFrameDrawer.java
│ │ ├── VideoFrame.java
│ │ ├── VideoProcessor.java
│ │ ├── VideoSink.java
│ │ ├── VideoSource.java
│ │ ├── VideoTrack.java
│ │ ├── YuvConverter.java
│ │ └── YuvHelper.java
│ └── src
│ └── java
│ └── org
│ └── webrtc
│ ├── AndroidVideoDecoder.java
│ ├── audio
│ │ ├── VolumeLogger.java
│ │ ├── WebRtcAudioEffects.java
│ │ ├── WebRtcAudioManager.java
│ │ ├── WebRtcAudioRecord.java
│ │ ├── WebRtcAudioTrack.java
│ │ └── WebRtcAudioUtils.java
│ ├── BaseBitrateAdjuster.java
│ ├── BitrateAdjuster.java
│ ├── CalledByNative.java
│ ├── CalledByNativeUnchecked.java
│ ├── Camera1Session.java
│ ├── Camera2Session.java
│ ├── CameraCapturer.java
│ ├── CameraSession.java
│ ├── DynamicBitrateAdjuster.java
│ ├── EglBase10Impl.java
│ ├── EglBase14Impl.java
│ ├── Empty.java
│ ├── FramerateBitrateAdjuster.java
│ ├── GlGenericDrawer.java
│ ├── H264Utils.java
│ ├── HardwareVideoEncoder.java
│ ├── Histogram.java
│ ├── JniCommon.java
│ ├── JniHelper.java
│ ├── JNILogging.java
│ ├── MediaCodecUtils.java
│ ├── MediaCodecVideoDecoderFactory.java
│ ├── MediaCodecWrapperFactoryImpl.java
│ ├── MediaCodecWrapperFactory.java
│ ├── MediaCodecWrapper.java
│ ├── NativeAndroidVideoTrackSource.java
│ ├── NativeCapturerObserver.java
│ ├── NativeLibrary.java
│ ├── NV12Buffer.java
│ ├── NV21Buffer.java
│ ├── RefCountDelegate.java
│ ├── VideoCodecType.java
│ ├── VideoDecoderWrapper.java
│ ├── VideoEncoderWrapper.java
│ ├── WebRtcClassLoader.java
│ ├── WrappedNativeI420Buffer.java
│ ├── WrappedNativeVideoDecoder.java
│ └── WrappedNativeVideoEncoder.java
└── res
└── values
└── strings.xml
35 directories, 171 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论