-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
画面キャプチャ時の音声データの送信方法について #29
Comments
@FromAtom 結論から先に言いますと、 Sora iOS SDK ではマイク以外の任意の音声データを送信することができません。これは libwebrtc (iOS) の音声に関する実装がデバイスのマイクと密接に結びついており、任意の音声データを送信する仕組みが用意されていないからです。 libwebrtc (iOS) の実装の問題であり、残念ながら Sora iOS SDK ではどうにもできず、有力な回避策もないのが現状です。ご期待に沿えず申し訳ありません。 なお、他社のサービスによっては iOS で任意の音声データを送信できる場合がありますが、そのようなサービスでは libwebrtc の実装にかなり手を加えている可能性があります。現在の弊社のリソースで libwebrtc の実装にカスタマイズを行い、メンテナンスを行うのは難しいので、その対応が現実的ではありません。
申し訳ないです .. 。 |
こちらの issues は問題が解決されるまで Open にしておきます。 |
@voluntas 詳細な説明ありがとうございます。libwebrtcの制約について理解しました。 問題を解決するために追加で質問なのですが、 https://github.com/shiguredo/sora-ios-sdk-samples/tree/develop/ScreenCastSample/ScreenCastSample を参考にReplayKitを利用したScreenCastを実装した場合は、問題なくマイク音声を取得して送信することができました。しかし、ReplayKitのBroadcast Upload Extensionを利用して画面収録を行った際には、マイク音声を送信することができませんでした。 ReplayKitのマイクが利用されないように、 Sora.shared.configureAudioSession {
RPScreenRecorder.shared().isCameraEnabled = false
RPScreenRecorder.shared().isMicrophoneEnabled = false
do {
try AVAudioSession.sharedInstance().setActive(true, options: [])
} catch(let error) {
print(error)
}
} といったコードを記載し、InfoPlistにもマイクを利用するための設定を記載してあります。そのうえで、 こちらはlibwebrtcの制約で、Broadcast Upload Extensionではマイク音声が送れないことになっているのでしょうか?それとも、なにかこちらで指定すべきパラメータなどが抜け漏れているのでしょうか? |
@FromAtom おまたせして申し訳ないです。今の所の結論としては libwebrtc 側の制約でマイク音声が流れないという認識でいます。 このマイク以外からの音声データが入力できない問題は弊社としても課題と考えておりまして、なんとか実現できないかと思い、以前1度調査をしたのですが、かなり難しい事がわかっています。 以前の調査資料の一部内容を省いたものです。 iOS SDK: 外部audioをWebRTC経由で流す方法の調査 なんとか実現をしたいと考えておりますので、もう一度、調査と検討してみます。おまたせして申し訳ありません。 |
@voluntas なるほど。やはり 調査・検討していただけるとのことで、ありがとうございます。こちらでも調査を続けつつ、お待ちしております。 |
- add line separators between next step in getting started - remove unfinished setup guide with Prisma migrate for now
JSのSDKでは
stream.addTrack();
と処理を行い、音声データを送信することができますが、それと同等の機能はiOS SDKではどのように実現すれば良いでしょう。困っている点としては、
RPBroadcastSampleHandler
を継承したClassで得られたCMSampleBuffer
をmainStream.send(videoFrame: frame)
で送りたいのですが、.audioApp
や.audioMic:
タイプのCMSampleBuffer
はVideoFrame(from: CMSampleBuffer)
でインスタンスが生成できない点です。The text was updated successfully, but these errors were encountered: