Skip to content

Commit

Permalink
完善demo
Browse files Browse the repository at this point in the history
  • Loading branch information
shenbengit committed Dec 6, 2021
1 parent d01457e commit c2aeba1
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package com.shencoder.webrtcextensiondemo

import android.content.Context
import android.graphics.BitmapFactory
import android.media.MediaCodecInfo
import android.os.Build
import android.text.TextUtils
import com.shencoder.webrtcextension.OverlayNV21VideoProcessor
import com.shencoder.webrtcextension.ProxyVideoSink
import com.shencoder.webrtcextension.util.Nv21BufferUtil
import com.shencoder.webrtcextensiondemo.R.drawable.ding
import org.webrtc.*
import org.webrtc.audio.JavaAudioDeviceModule
import org.webrtc.audio.setAudioTrackSamplesReadyCallback
Expand Down Expand Up @@ -108,6 +113,43 @@ class WebRTCManager private constructor() {
.setVideoEncoderFactory(defaultVideoEncoderFactory)
.setVideoDecoderFactory(defaultVideoDecoderFactory)
.createPeerConnectionFactory()

//目前仅支持Camera1,且captureToTexture 必须要传false
val camera1Enumerator = Camera1Enumerator(false)
val videoCapturer = camera1Enumerator.createCapturer("front", null)
val videoSource = mPeerConnectionFactory.createVideoSource(videoCapturer.isScreencast)
videoCapturer.initialize(
SurfaceTextureHelper.create("SurfaceTextureHelper", eglBaseContext),
applicationContext,
videoSource.capturerObserver
)

val bitmap = BitmapFactory.decodeResource(applicationContext.resources, ding)

videoSource.setVideoProcessor(
OverlayNV21VideoProcessor(
overlayNv21Buffer = Nv21BufferUtil.argb8888BitmapToNv21Buffer(
bitmap,
true
),
left = 50,
top = 50,
hasTransparent = true
)
)

val videoTrack = mPeerConnectionFactory.createVideoTrack(
"video_track",
videoSource
)

val svr = SurfaceViewRenderer(applicationContext)
videoTrack.addSink(ProxyVideoSink(svr, object : ProxyVideoSink.VideoFrameProcessor {
override fun onFrameProcessor(frame: VideoFrame): VideoFrame {
return frame
}
}))

}

fun release() {
Expand Down
Binary file added app/src/main/res/drawable/ding.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/overlay.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c2aeba1

Please sign in to comment.