- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 opentok 来实现语音聊天应用程序。一切正常 我在将音频扬声器更改为耳机模式时卡住了。我也尝试过手动将扬声器音频更改为我的耳机扬声器,但没有成功。
这是我的课
public class MainActivity extends AppCompatActivity implements Session.SessionListener, PublisherKit.PublisherListener {
private static String API_KEY = "46066142";
private static String SESSION_ID = "1_MX40NjA2NjE0Mn5-MTUxOTM2OTQ3NDczMH5VaDJXL0lUdHRYWkpUTzlRbEs5aVJSaU1-fg";
private static String TOKEN = "T1==cGFydG5lcl9pZD00NjA2NjE0MiZzaWc9ZmE5N2IyMzExNTczYWM3NDRmYmUzNTNiNThkOWUzMDJmOTgxYWQ3MDpzZXNzaW9uX2lkPTFfTVg0ME5qQTJOakUwTW41LU1UVXhPVE0yT1RRM05EY3pNSDVWYURKWEwwbFVkSFJZV2twVVR6bFJiRXM1YVZKU2FVMS1mZyZjcmVhdGVfdGltZT0xNTE5MzcxMjUwJnJvbGU9cHVibGlzaGVyJm5vbmNlPTE1MTkzNzEyNTAuNzg1NDExODQyNDc1MjQ=";
private static final int RC_VIDEO_APP_PERM = 124;
private Session mSession;
private FrameLayout mPublisherViewContainer;
private FrameLayout mSubscriberViewContainer;
private Publisher mPublisher;
private Subscriber mSubscriber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestPermissions();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
@AfterPermissionGranted(RC_VIDEO_APP_PERM)
private void requestPermissions() {
String[] perms = { Manifest.permission.INTERNET, Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO,Manifest.permission.MODIFY_AUDIO_SETTINGS };
if (EasyPermissions.hasPermissions(this, perms)) {
// initialize view objects from your layout
mPublisherViewContainer = (FrameLayout)findViewById(R.id.publisher_container);
mSubscriberViewContainer = (FrameLayout)findViewById(R.id.subscriber_container);
// initialize and connect to the session
mSession = new Session.Builder(this, API_KEY, SESSION_ID).build();
mSession.setSessionListener(this);
mSession.connect(TOKEN);
} else {
EasyPermissions.requestPermissions(this, "This app needs access to your camera and mic to make video calls", RC_VIDEO_APP_PERM, perms);
}
}
@Override
public void onConnected(Session session) {
mPublisher = new Publisher.Builder(this).audioTrack(true).build();
mPublisher.setPublisherListener(this);
mPublisher.cycleCamera();
mPublisherViewContainer.addView(mPublisher.getView());
mSession.publish(mPublisher);
}
@Override
public void onDisconnected(Session session) {
}
@Override
public void onStreamReceived(Session session, Stream stream) {
if (mSubscriber == null) {
mSubscriber = new Subscriber.Builder(this, stream).build();
mSession.subscribe(mSubscriber);
mSubscriberViewContainer.addView(mSubscriber.getView());
}
}
@Override
public void onStreamDropped(Session session, Stream stream) {
if (mSubscriber != null) {
mSubscriber = null;
mSubscriberViewContainer.removeAllViews();
}
}
@Override
public void onError(Session session, OpentokError opentokError) {
}
@Override
public void onStreamCreated(PublisherKit publisherKit, Stream stream) {
}
@Override
public void onStreamDestroyed(PublisherKit publisherKit, Stream stream) {
}
@Override
public void onError(PublisherKit publisherKit, OpentokError opentokError) {
}
}
我用过的库
implementation 'com.opentok.android:opentok-android-sdk:2.13.0'
implementation 'pub.devrel:easypermissions:0.4.0'
最佳答案
Add this code to your onStreamCreated method
@Override
public void onStreamCreated(PublisherKit publisherKit, Stream stream) {
AudioDeviceManager.getAudioDevice().setOutputMode(BaseAudioDevice.OutputMode.Handset);
}
在浪费了我的 4 天时间后,我得到了解决方案。我正在回答我自己的问题,因为这可能有助于某人而不是浪费他/她的 4 天时间。我回答我的问题只是因为我得到了解决方案,我的另一个问题是仍然没有答案,您可以查看。
关于java - 无法使用 OpenTok 在耳机模式下切换音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48948803/
因此,我使用 OpenTok 在我的社区网站上创建了一个流媒体应用程序。这真的很棒,但有一些用例,我的一些社区目前通过 YouTube 进行流式传输,并且有一个使用 RTMP 的设置。他们不一定想使用
我是第一次尝试使用 OpenTok。我正在做的只是尝试运行 Open-Tok 提供的示例 Hello-World 项目。 我正在使用 Xcode 5,我已将我的项目 Target 设置为 7。我还检查
您的 tokbox maven 有问题吗?因为从今天早上开始我无法编译我的项目,我有这个错误: 找不到 com.opentok.android:opentok-android-sdk:2.8.+ 的任
有没有人使用过(或贡献过)opentok-react-native 和 react-native-opentok?寻找通用视频 session 应用更好维护或更好选择的一些观点。 两者似乎都是最近才更
我一直在尝试获取 OpenTok Android hello world工作,但它在启动时不断崩溃。导入Hello world项目后,我将opentok android sdk复制到项目中,在ecli
我正在使用THIS opentok 演示应用程序,具有聊天、存档、屏幕共享等功能,但我一直停留在屏幕共享上。 对于屏幕共享,它需要一个 chrome 扩展,并且我成功构建了该扩展并将该 Extensi
我正在使用 opentok 库 compile 'com.opentok.android:opentok-android-sdk:2.9.+' 并在我的 build.gradle 文件中添加了
我正在使用 OpenTok 的 js 库为我的 Web 应用程序实现网络测试。 为此,我创建了一个发布者,连接到 session ,然后让订阅者连接到发布者的流。 该测试适用于其他浏览器(我已经测试过
我之前问过一个相关的问题 OpenTok - How to publish/unpublish manually? 现在我正在努力手动取消订阅。 http://www.tokbox.com/opent
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 9 年前。 Improve
是否可以知道有多少人连接到一个 session ?我希望实现一种只允许两个人连接的机制,如果超过两个人,将显示一个警报。 最佳答案 当您获得 sessionConnected 事件时,您将获得一组连接
我尝试使用 opentok JS 客户端创建一个屏幕共享应用程序,该客户端也共享发布者的音频。 屏幕共享工作正常。但音频永远不会共享。 现在,我注意到控制台 (Firefox) 中有一条警告说 Inv
我正在使用 OpenTok 构建视频聊天网站。我有视频和文本聊天功能,(仍在进行屏幕共享),但我想知道是否有人可以为我指出关于文件共享的正确方向? 我希望双方能够相互发送文件,但不确定如何去做。可以使
我使用 opentok 创建了在线教育视频门户。学生人数请看老师视频。老师也会看到所有已连接学生的视频。使用以下代码我可以阻止自己订阅:- function subscribeToStreams(st
我目前正在开发一个使用 OpenTok text-chat signal api 的聊天应用程序。我面临的问题是,当网络中断时,如果 api 无法在短时间内重新连接,则 api 会尝试在很短的时间内重
我正在使用 OpenTok 为 iPad/iPhone 开发应用程序。当设备处于纵向时,user.stream.videoDimensions.width 给出640 和user.stream.vid
我面临着存档成本的问题,因为录音非常重要,那么有什么方法可以在不使用 opentok startArchive 方法的情况下将视频流存储到服务器上 问候, 最佳答案 答案 1 是准确的;或者,您可以开
我正在使用 opentok(tokbox) 作为视频聊天应用程序。我尝试了开发人员提供的快速代码。当我在设备中运行代码时,发布者和订阅者都只显示设备的摄像头输入。我尝试使用具有相同 session 和
我想知道如何获取订阅者视频源的屏幕截图。我看到表示视频流的 Stream 对象被传递到订阅者的构造函数中,但我不知道如何利用它来将当前帧转换为位图。和想法? 提前致谢! 最佳答案 要获取订阅者图像的
我正在尝试使用 opentok 为网站上的用户生成 session ID。 我正在使用 opentok 网站上的教程来创建 session ID (https://github.com/opentok
我是一名优秀的程序员,十分优秀!