小编Dar*_*der的帖子

可可:如何渲染视图到图像?

我想知道是否有任何方法来渲染图像的视图?就像截图一样,但我可以为该方法指定任何视图.我知道如何在ios中做到这一点.保存视图内容,但是如何在mac os中完成?

macos cocoa

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

将多通道音频缓冲区合并为一个 CMSampleBuffer

我正在使用FFmpeg访问我的macOS应用程序中的RTSP流。

达到的目标:我创建了一个音调发生器,它创建单通道音频并返回一个 CMSampleBuffer。当视频的 fps 和音频采样率发生变化时,音调发生器用于测试我的音频管道。

目标:目标是将多通道音频缓冲区合并为一个 CMSampleBuffer。

音频数据生命周期:

AVCodecContext* audioContext = self.rtspStreamProvider.audioCodecContext;
        if (!audioContext) { return; }

        // Getting audio settings from FFmpegs audio context (AVCodecContext).
        int samplesPerChannel = audioContext->frame_size;
        int frameNumber = audioContext->frame_number;
        int sampleRate = audioContext->sample_rate;
        int fps = [self.rtspStreamProvider fps];

        int calculatedSampleRate = sampleRate / fps;

        // NSLog(@"\nSamples per channel = %i, frames = %i.\nSample rate = %i, fps = %i.\ncalculatedSampleRate = %i.", samplesPerChannel, frameNumber, sampleRate, fps, calculatedSampleRate);

        // …
Run Code Online (Sandbox Code Playgroud)

audio macos ffmpeg objective-c

6
推荐指数
0
解决办法
669
查看次数

有没有一种方法可以在Objective-C中使用Swift结构而不将其设置为类?

structs在.swift文件中用swift编写了几个简单的文件。这些structs非常简单,几乎只包含字符串:

struct Letter {
   struct A {
      static let aSome : String = "descASome"
      static let aSomeMore : String = "descASomeMore"
   }
   struct B {
      static let bNow : String = "descBNow"
      static let bLater : String = "descBLater"
   }
...
}
Run Code Online (Sandbox Code Playgroud)

我想在包含Objective-C代码的项目中使用这些结构,因为我正在编写一个跨平台框架。

我读过:ObjectiveC-Apple的Swift互操作性,明确指出ObjectiveC不能使用Swift编写的结构。除其他功能外,不包括:

Swift中定义的结构

解决方案1:

我找到了一个SO解决方案,可以通过使用类来解决此问题:

@objc class Letter : NSObject {
   @objc class A : NSObject {
      static let aSome : String = "descASome"
      static let aSomeMore : String = "descASomeMore"
   } …
Run Code Online (Sandbox Code Playgroud)

frameworks cross-platform objective-c swift

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

标签 统计

macos ×2

objective-c ×2

audio ×1

cocoa ×1

cross-platform ×1

ffmpeg ×1

frameworks ×1

swift ×1