Kotlin

カスタムオーディオレンダラの追加

購読ストリームのオーディオ用のシンプルなオーディオ・レンダラーを実装します。

について NoiseAudioDevice コンストラクタのメソッドは、入力されたオーディオをファイルに保存するためのファイルを設定します。 これは、単にカスタムオーディオドライバのオーディオレンダラの使い方を説明するためのものです。

について BaseAudioDevice.initRenderer メソッドは、アプリがオーディオレンダラーを初期化するときに呼び出されます。 このメソッドは NoiseAudioDevice このメソッドを実装すると、新しいFileオブジェクトがインスタンス化され、そこにアプリがオーディオデータを書き込みます:

override fun initRenderer(): Boolean {
    rendererBuffer = ByteBuffer.allocateDirect(SAMPLING_RATE * 2)
    val documentsDirectory = context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)

    rendererFile = File(documentsDirectory, "output.raw")
    if (rendererFile?.exists() == false) {
        try {
            rendererFile?.parentFile?.mkdirs()
            rendererFile?.createNewFile()
        } catch (e: IOException) {
            e.printStackTrace()
        }
    }
    return true
}

について BaseAudioDevice.startRendering メソッドは、オーディオデバイスがサブスクライブしたストリームからオーディオのレンダリング(再生)を開始するときに呼び出される。このメソッドは NoiseAudioDevice このメソッドの実装は capturer スレッドが1秒後にキューで実行される:

override fun startRenderer(): Boolean {
    rendererStarted = true
    rendererHandler?.postDelayed(renderer, rendererIntervalMillis)
    return true
}

について renderer スレッドは、オーディオバスから1秒分のオーディオを取得する。 readRenderData のメソッドを使用する。 AudioBus オブジェクトを作成します。そして、オーディオデータをファイルに書き込みます(サンプル用)。また、オーディオデバイスがまだオーディオサンプルのレンダリングに使われている場合は、タイマーをセットして rendererHandler 0.1秒後に再びスレッドを実行する:

private var rendererHandler: Handler? = null

private val renderer: Runnable = object : Runnable {
    override fun run() {
        rendererBuffer?.clear()
        audioBus.readRenderData(rendererBuffer, SAMPLING_RATE)
        try {
            val stream = FileOutputStream(rendererFile)
            stream.write(rendererBuffer?.array())
            stream.close()
        } catch (e: FileNotFoundException) {
            e.printStackTrace()
        } catch (e: IOException) {
            e.printStackTrace()
        }
        if (rendererStarted && !audioDriverPaused) {
            rendererHandler?.postDelayed(this, rendererIntervalMillis)
        }
    }
}

カスタムオーディオドライバー

カスタムオーディオドライバーを使用して、パブリッシャーとサブスクライバーのストリームオーディオをカスタマイズする方法を説明します。カスタムオーディオドライバは、独自のオーディオファイルを再生したり、SDKが提供するライブビデオチャットのデフォルトの動作以外のことを行う場合に使用します。

以下の言語で利用可能:
Kotlin Swift
手順
1
はじめに
2
はじめに
3
新規プロジェクトの作成
4
Android SDKの追加
5
認証の設定
6
許可を求める
7
カスタムオーディオドライバの追加
8
出版社で使用する音声のキャプチャー
9
カスタムオーディオレンダラの追加
10
アプリの実行
11
結論