如何在 android 上播放 webrtc.AudioTrack(无视频)
How to play a webrtc.AudioTrack on android (No Video)
我正在尝试为 android 使用本机 webrtc SDK (libjingle)。到目前为止,我可以将流从 android 发送到网络(或其他平台)就好了。我还可以从对等方接收 MediaStream。 (到 onAddStream 回调)
我正在进行的项目只需要音频流。没有正在创建或发送给任何人的视频轨道。
我的问题是,我如何播放从远程节点获取的 MediaStream 对象?
@Override
public void onAddStream(MediaStream mediaStream) {
Log.d(TAG, "onAddStream: got remote stream");
// Need to play the audio ///
}
同样,问题是关于音频的。我没有使用视频。
显然所有原生 webrtc 示例都使用视频轨道,所以我没能在网上找到任何文档或示例。
提前致谢!
我们可以使用下面的代码获取远程音轨
import org.webrtc.AudioTrack;
@Override
public void onAddStream(final MediaStream stream){
if(stream.audioTracks.size() > 0) {
remoteAudioTrack = stream.audioTracks.get(0);
}
}
Apparently all the native webrtc examples uses video tracks, so i had no luck finding any documentation or examples on the web.
是的,作为应用开发者,我们只需要关心视频渲染。
如果我们收到了远程音轨,默认情况下它将在基于邻近设置的默认扬声器(耳朵 speaker/loud speaker/wired 耳机)中播放。
检查 AppRTCAudioManager.java 中的以下代码
enable/disable 演讲者
/** Sets the speaker phone mode. */
private void setSpeakerphoneOn(boolean on) {
boolean wasOn = audioManager.isSpeakerphoneOn();
if (wasOn == on) {
return;
}
audioManager.setSpeakerphoneOn(on);
}
我正在尝试为 android 使用本机 webrtc SDK (libjingle)。到目前为止,我可以将流从 android 发送到网络(或其他平台)就好了。我还可以从对等方接收 MediaStream。 (到 onAddStream 回调)
我正在进行的项目只需要音频流。没有正在创建或发送给任何人的视频轨道。
我的问题是,我如何播放从远程节点获取的 MediaStream 对象?
@Override
public void onAddStream(MediaStream mediaStream) {
Log.d(TAG, "onAddStream: got remote stream");
// Need to play the audio ///
}
同样,问题是关于音频的。我没有使用视频。 显然所有原生 webrtc 示例都使用视频轨道,所以我没能在网上找到任何文档或示例。
提前致谢!
我们可以使用下面的代码获取远程音轨
import org.webrtc.AudioTrack;
@Override
public void onAddStream(final MediaStream stream){
if(stream.audioTracks.size() > 0) {
remoteAudioTrack = stream.audioTracks.get(0);
}
}
Apparently all the native webrtc examples uses video tracks, so i had no luck finding any documentation or examples on the web.
是的,作为应用开发者,我们只需要关心视频渲染。 如果我们收到了远程音轨,默认情况下它将在基于邻近设置的默认扬声器(耳朵 speaker/loud speaker/wired 耳机)中播放。
检查 AppRTCAudioManager.java 中的以下代码 enable/disable 演讲者
/** Sets the speaker phone mode. */
private void setSpeakerphoneOn(boolean on) {
boolean wasOn = audioManager.isSpeakerphoneOn();
if (wasOn == on) {
return;
}
audioManager.setSpeakerphoneOn(on);
}