마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MediaMuxer에 오디오를 기록하고 싶습니다.

0 추천

현재 Camera2를 통해서 나온 버퍼를 MediaMuxer에 기록하는데 성공했습니다. 그런데 같은 방식으로 오디오를 어떻게 해야 할지 감이 안잡힙니다.

videoCodec!!.setCallback(object : MediaCodec.Callback() {
            override fun onInputBufferAvailable(mediaCodec: MediaCodec, index: Int) {
                Log.d(TAG, "video input buffer")
            }

            override fun onOutputBufferAvailable(mediaCodec: MediaCodec, index: Int, bufferInfo: MediaCodec.BufferInfo) {
                //Log.d(TAG, "video output buffer $index")
                if (isRecording) {
                    val outputBuffer = mediaCodec.getOutputBuffer(index)
                    if (outputBuffer != null) {
                        if (outputBuffer.hasRemaining()) {
                            mediaMuxer?.writeSampleData(videoTrackIndex, outputBuffer, bufferInfo)
                        }
                    }
                }

                mediaCodec.releaseOutputBuffer(index, false)
            }

            override fun onError(mediaCodec: MediaCodec, exception: MediaCodec.CodecException) {
                Log.e(TAG, "video codec error", exception)
            }

            override fun onOutputFormatChanged(mediaCodec: MediaCodec, mediaFormat: MediaFormat) {
                if (mediaMuxer != null) {
                    videoTrackIndex = mediaMuxer!!.addTrack(mediaFormat)
                    mediaMuxer!!.start()
                }
            }
        })

이런 식으로 오디오도 MediaCodec의 콜백으로 받게 만들고 싶습니다.

niss (3,110 포인트) 님이 2020년 9월 15일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...