9

我对 Qt mobile 完全陌生,我什至没有扎实的移动开发经验,如果我问一些明显的问题,很抱歉。

我需要开发一个移动应用程序,它应该能够接收类似功能的呼叫(通过互联网,而不是 GSM 呼叫)。回答后,它应该开始从我们的服务器流式传输音频和视频。调用应该只是一种方式,这意味着流从服务器到设备,但从不从设备到服务器。

所以我的问题是:

  1. 这在Qt中可能吗?我选择 Qt 是因为我熟悉它,我想支持桌面、android 和 ios。以后可能是windows phone。
  2. 屏幕关闭且我的应用程序未运行时是否可以接听电话?我的意思是,这是一个移动设备,应用程序不会一直运行,它应该只在服务器到设备的调用时启动。我怎样才能做到这一点?我认为 Viber、Skype 和其他消息应用程序可以做到这一点。

提前谢谢了 :)

4

4 回答 4

6

1 - 好吧,当然可以,尽管它可能不像您想要的那样简单明了。Qt Multimedia 确实提供了必要的类,但您必须检查它们在您需要定位的平台上的支持程度。

然而,Qt 提供的类要么太高级而无法满足其预期目的之外的任何目的,要么太低级,因此您必须手动实现几乎所有内容。在这方面,Qt 能够生成便携式应用程序的好处可能不会超过使用某些平台特定库的易用性,这些库提供开箱即用的视频流。换句话说,使用 Android 和 iOS 库编写单独的 Android 和 iOS 应用程序可能比同时在两者上运行的单个 Qt 应用程序更容易。

但是以防万一您决定使用 Qt,正如我暂时提到的那样,您只有一个选择 - 自己完成大部分工作。QAudioRecorder这意味着您应该使用给定长度的缓冲区中定期记录音频和捕获帧QCamera,压缩该数据(如果考虑到安全性,最好对其进行加密),通过QTcpSocket连接将其发送到客户端,解压缩(和解密)数据并同步播放。这当然是可行的,但正如已经提到的,这将更加困难,因为 Android 和 iOS 库提供了几乎“开箱即用”的解决方案。或者,您可能决定使用第三方解决方案,该解决方案为您定位的所有平台提供支持。

2 - 无论您的屏幕是打开还是关闭 - 这将是对特定于平台的 API 的调用,因此打开它或在给定持续时间内保持打开的请求也是如此。无论您的应用程序是否在设备上运行,这很容易 - 只需尝试与设备上的客户端建立 TCP 连接,如果成功则客户端正在运行。如果您想在应用程序未运行时接收呼叫,则必须实现一个平台特定的服务,该服务始终运行并在收到呼叫时启动您的应用程序。

于 2014-11-08T13:03:52.167 回答
4

QT Mobility 没有支持 VoIP 的框架,您可以从参考资料中看到:http: //doc-snapshot.qt-project.org/qt-mobility/

您可以在本地创建应用程序的 VoIP 框架(这需要很好地理解各种可用的音频和视频框架),但另一种方法是使用支持 iOS 和 Android 的 VoIP SDK,例如 Twilio移动客户端 https://www.twilio.com/client/mobile

于 2014-11-04T19:03:51.323 回答
3

Qt mobile 将在应用程序的 UI 中为您提供帮助,但是您必须为要使用的每个平台编写一些本机代码。请注意,Qt 正在快速扩展,您可能不需要在即将发布的 Qt 版本中使用特定于平台的本机代码。

是的,当您的应用程序关闭时,您可以通过创建后台服务接收 VoIP 呼叫(但据我所知,到目前为止 Qt 不能为您完成这项工作,您需要在本地完成),这是 Skype 的方式和 Viber 工作。

于 2014-11-04T09:51:29.197 回答
1

据我所知,用于开发的新Blackberry10操作系统。qt有一个关于VoiP在 qt 中调用的源代码。我仍在寻找有关视频通话的信息​​。

检查下面的链接,可能会有所帮助

1) 黑莓开发者博客

(2) PjSip 博客

(3)下载源代码

我不知道如何使用语言开发应用Android程序iosdesktopqt

但我建议用所有本地语言而不是 qt 开发应用程序。

于 2014-11-05T06:20:57.030 回答