小编Rap*_*ael的帖子

Quickblox - 如何将QBRTCCameraCapture保存到文件中

我有一个视频通话应用程序使用最新的Quickblox版本(Quickblox 2.5,Quickblox-WebRTC 2.0),我需要保存在调用文件时流式传输的视频.有一个旧版本的SDK的旧示例,它看起来与当前版本完全不同.

由于Quickblox已经在使用AVCaptureVideoDataOutput,因此在当前的文档中没有任何关于此的内容,我无法启动AVCaptureMovieFileOutout.无论如何将流保存到文件中?

更新:

我设法将视频写入文件.缺少的只是音轨.

import Foundation

class VideoManager : NSObject, AVCaptureVideoDataOutputSampleBufferDelegate {

    static let sharedInstance = VideoManager()

    var pixelBufferAdaptor: AVAssetWriterInputPixelBufferAdaptor?
    var assetWriterInput: AVAssetWriterInput?
    var assetWriter: AVAssetWriter?
    var frameNumber: Int64 = 0
    var qbDelegate: AVCaptureVideoDataOutputSampleBufferDelegate?

    func startSavingCaptureToFileWithURL(url: NSURL, capture: QBRTCCameraCapture) {
        print("[VideoManager]: startSavingCaptureToFileWithURL")
        guard let dataOutput = getVideoCaptureDataOutput(capture) else { return }

        frameNumber = 0

        qbDelegate = dataOutput.sampleBufferDelegate
        dataOutput.setSampleBufferDelegate(self, queue: dataOutput.sampleBufferCallbackQueue)

        let outputSettings: [String : AnyObject] = [
            AVVideoWidthKey : 720,
            AVVideoHeightKey: 1280,
            AVVideoCodecKey : AVVideoCodecH264
        ]

        assetWriterInput …
Run Code Online (Sandbox Code Playgroud)

ios webrtc quickblox swift

10
推荐指数
1
解决办法
410
查看次数

在 Linux 上为 Mac OS X 编译 Qt 应用程序

我正在开发一个 Qt 应用程序,我需要支持 Linux、Windows 和 Mac OS X。但唯一的问题是我没有 Mac。是否可以在 Linux 上编译适用于 Mac OS X 的应用程序并将其打包到 .dmg 文件中?

我还担心我的应用程序依赖于 OpenSSL,我可以在我的 Linux 机器上编译适用于 Mac OS X 的 OpenSSL 吗?

谢谢。

c++ qt openssl osx-leopard cross-compiling

8
推荐指数
1
解决办法
8142
查看次数

使用QMAKE构建项目的32位和64位版本

我需要生成一个32位版本的应用程序,但我正在编译64位操作系统.我正在寻找一种方法让QMake生成我的应用程序的32位和64位版本.如果这不可能,我想知道如何切换到32位.我还想避免乱用生成的makefile.

qt qmake 32bit-64bit

8
推荐指数
1
解决办法
1万
查看次数

如何让Qt知道QMYSQL驱动程序

我正在尝试从Qt应用程序访问MySql数据库,但是我收到以下错误:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QSQLITE2
Run Code Online (Sandbox Code Playgroud)

我发现这很奇怪的原因我在我的Qt文件夹上有libqsqlmysql.so.我甚至尝试将MySql驱动程序编译为静态插件,并将其添加到我的.pro文件中:

QTPLUGIN += qsqlmysql
Run Code Online (Sandbox Code Playgroud)

但是这也会产生相同的运行时错误(它必须找到插件导致编译应用程序时没有错误)

我错过了什么?我想避免从源代码编译Qt,因为这也必须在部署机器上无缝工作.

顺便说一句:即使我在Linux上开发和测试,我也需要支持Windows.我会在Windows上遇到同样的问题吗?如何在Linux和Windows中编译和链接MySql驱动程序?

解决方案:

按照@ Sergey的推荐,我做了一个应用程序重定向输出到grep,所以我可以搜索'mysql',我惊讶的是应用程序没有在QTDIR/plugins/sqldrivers中找到我有libqsqlmysql.so的插件,它在看QTDIR/lib目录下.将插件复制到lib文件夹后,MySql连接正常工作.

qt qtsql

8
推荐指数
1
解决办法
2万
查看次数

剥离unicode字符修饰符

从Python中的unicode字符串中剥离字符修饰符的最简单方法是什么?

例如:

A͋͠r͍̞̫̜͌ͦ̈͐t̼̭͞hu̡̙̞̘̙̬͖͓rͬͣ̐ͮͥͨ͏̣应该成为亚瑟

我尝试了文档,但我找不到任何可以做到这一点.

python unicode utf-8

7
推荐指数
2
解决办法
523
查看次数

Qt - Windows上的SLL错误

我的应用程序在Windows上抛出以下错误:

QSslSocket:无法调用未解析的函数SSLv3_client_method

QSslSocket:无法调用未解析的函数SSL_CTX_new

QSslSocket:无法调用未解析的函数SSL_library_init

QSslSocket:无法调用未解析的函数ERR_get_error

QSslSocket:无法调用未解析的函数ERR_error_string

我已经安装了VS C++ Redistributables和OpenSSL,但我不知道如何告诉Qt动态链接openSSL.我正在使用Windows 7上的Qt二进制文件和Qt Creator的LGPL版本(Linux版本工作正常)

windows qt openssl msvcr90d.dll

6
推荐指数
1
解决办法
6107
查看次数

Django - 如何将html属性添加到模板上的表单

假设我有以下模板:

<div id="openid_input_area">
{{ form.openid_identifier }}
    <input name="bsignin" type="submit" value="{% trans "Sign in" %}">
</div>
Run Code Online (Sandbox Code Playgroud)

如何将css类添加到form.openid_identifier?

由于我遵守SOC原则并希望设计人员改进模板,我希望在表单模型上执行此操作,而是在模板本身上执行此操作.

我在文档上找不到任何相关内容.有没有办法在模板上执行此操作?

django django-templates

6
推荐指数
1
解决办法
5484
查看次数

在Mac Os上执行步骤'qmake'时出错

我刚买了一台Macbook(是的,我在Mac上是一个完整的菜鸟,虽然我对Linux有一些相当丰富的经验)而且我正在尝试在它上面构建我的Qt应用程序.我已经安装了XCode和Qt SDK但是当我尝试在Qt Creator上构建我的项目时,我得到的是qmake期间的以下错误:

Running build steps for project TimeTracker...
Starting: "/usr/bin/qmake" /Users/raphaelcruzeiro/Documents/Projects/Timely/Widget/TimeTracker/TimeTracker.pro -r -spec macx-g++
Failure to open file: /Developer/Applications/Qt/Makefile
Unable to generate makefile for: /Users/raphaelcruzeiro/Documents/Projects/Timely/Widget/TimeTracker/TimeTracker.pro
The process "/usr/bin/qmake" exited with code %2.
Error while building project TimeTracker (target: Desktop)
When executing build step 'qmake'
Run Code Online (Sandbox Code Playgroud)

关于发生了什么的任何想法?/ Developer/Applications/Qt/Makefile确实不存在.

编辑:

好的,我知道发生了什么,但我不知道如何解决它.当我从终端运行qmake时,一切都很顺利.我相信Qt Creator正试图在Qt目录本身上构建我的应用程序并且它没有它的权限(它不应该反正).如何告诉Qt Creator在哪里构建我的应用程序?我没有在任何地方找到它,设置DESTDIR变量没有帮助.

解决方案:

删除.pro.user文件使Qt Creator将应用程序构建到DESTDIR中指定的目录

macos qt

5
推荐指数
1
解决办法
6868
查看次数

drawLayer:inContext - 发送到实例的无法识别的选择器

我正在尝试创建一个绘制图层的UIViewController,如果这个UIViewController是主要的,它可以正常工作.但是,如果我尝试在另一个控制器内初始化它,然后将其视图添加为主控制器视图的子视图,则会导致以下错误:

-[__NSCFType drawLayer:inContext:]: unrecognized selector sent to instance 0x155140
Run Code Online (Sandbox Code Playgroud)

这是我的自定义UIViewController(PDFPageViewController)的相关代码:

- (void)loadDocument:(PDFDocument *)document
{
    self._document = document;

    CGRect pageRect = CGRectIntegral(CGPDFPageGetBoxRect(self._document.page, kCGPDFCropBox));

    pageRect.origin.x = (self.view.frame.size.width / 2) - (pageRect.size.width / 2) - 35;

    CATiledLayer *tiledLayer = [CATiledLayer layer];
    tiledLayer.delegate = self;
    tiledLayer.tileSize = CGSizeMake(1024.0, 1024.0);
    tiledLayer.levelsOfDetail = 1000;
    tiledLayer.levelsOfDetailBias = 1000;
    tiledLayer.frame = pageRect;

    contentView = [[UIView alloc] initWithFrame:pageRect];
    [contentView.layer addSublayer:tiledLayer];

    CGRect viewFrame = self.view.frame;
    viewFrame.origin = CGPointZero;

    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:viewFrame];
    scrollView.delegate = self;
    scrollView.contentSize = pageRect.size; …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c ios

5
推荐指数
1
解决办法
875
查看次数

Django Rest Framework不会反序列化作为原始JSON传递的数据

我有以下观点:

class Authenticate(generics.CreateAPIView):
    serializer_class = AuthSerializer

    def create(self, request):
        serializer = AuthSerializer(request.POST)
        # Do work here
Run Code Online (Sandbox Code Playgroud)

如果数据作为表单传递,这很有效,但是,如果数据作为原始JSON传递,则序列化程序将实例化,并将其所有字段设置为None.文档确实提到应该有任何特定的处理原始JSON参数.

任何帮助,将不胜感激.

UPDATE

我有以下工作,以便在传递原始JSON时使Browsable API按预期工作,但我相信必须有更好的方法.

def parse_data(request):
    # If this key exists, it means that a raw JSON was passed via the Browsable API
    if '_content' in request.POST:
        stream = StringIO(request.POST['_content'])
        return JSONParser().parse(stream)
    return request.POST


class Authenticate(generics.CreateAPIView):
    serializer_class = AuthSerializer

    def create(self, request):
        serializer = AuthSerializer(parse_data(request))
        # Do work here
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

5
推荐指数
1
解决办法
3255
查看次数