Skip to content

Commit

Permalink
update: チャンネルの自動クローズ選択を追加
Browse files Browse the repository at this point in the history
  • Loading branch information
kuwacom committed Aug 15, 2024
1 parent 5364a1c commit 872ebe5
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
7 changes: 5 additions & 2 deletions pcm2opus.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@ import (
// sampleRate: PCMデータのサンプリングレート
// frameSizeMs: 各フレームの時間(ミリ秒単位)
// opusOutput: エンコードされたOpusデータを送信するためのチャネル
// autoChannelClose: エンコード後に、チャンネルを自動で閉じるかどうか
//
// 戻り値:
//
// エンコード中に発生したエラー(ある場合)
func PCMToOpus(pcmData []int16, sampleRate int, channels int, frameSizeMs int, opusOutput chan []byte) error {
func PCMToOpus(pcmData []int16, sampleRate int, channels int, frameSizeMs int, opusOutput chan []byte, autoChannelClose bool) error {
var pcmDataSize = len(pcmData)
var opusEncoder *opus.Encoder
var opusBuffer []byte
Expand All @@ -41,7 +42,9 @@ func PCMToOpus(pcmData []int16, sampleRate int, channels int, frameSizeMs int, o
opusOutput <- opusBuffer[:opusSize]
time.Sleep(time.Duration(frameSizeMs) * time.Millisecond) // コードによっては不必要かも
}
close(opusOutput) // ここも同様に、コードによっては不必要かも
if autoChannelClose {
close(opusOutput) // ここも同様に、コードによっては不必要かも
}
} else {
return err
}
Expand Down
5 changes: 3 additions & 2 deletions wav2opus.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@ package wav2opus
// outputRate: 出力サンプリングレート 0の場合は入力サンプリングレートと同じに設定されます
// frameSizeMs: 各フレームの時間(ミリ秒単位)
// opusOutput: エンコードされたOpusデータを送信するためのチャネル
// autoChannelClose: エンコード後に、チャンネルを自動で閉じるかどうか
//
// 戻り値:
//
// エンコード中に発生したエラー(ある場合)
func WAVToOpus(wavData []byte, inputRate int, channels int, outputRate int, frameSizeMs int, opusOutput chan []byte) error {
func WAVToOpus(wavData []byte, inputRate int, channels int, outputRate int, frameSizeMs int, opusOutput chan []byte, autoChannelClose bool) error {
pcmData, err := WAVToPCM(wavData, inputRate, outputRate)
if err != nil {
return err
}
return PCMToOpus(pcmData, outputRate, channels, frameSizeMs, opusOutput)
return PCMToOpus(pcmData, outputRate, channels, frameSizeMs, opusOutput, autoChannelClose)
}

0 comments on commit 872ebe5

Please sign in to comment.