小编zou*_*oul的帖子

AVAssetExportSession不导出音轨

我有一个应用程序,允许附加多个视频资产并将一个或多个音轨添加到合成.一切似乎都有效,我可以使用最终的合成AVPlayer(尽管音频水平似乎很低).将合成导出到文件后,音轨缺失.

我的代码主要基于WWDC10会话的AVEditDemo示例代码.我已经针对AVEditDemo代码仔细检查了我的代码,但无法找到可能存在的问题.我也检查了论坛,但没有太多与AVFoundation相关的帖子/解决方案.

我们非常欢迎任何帮助.干杯,

让 - 皮埃尔·


使用额外音轨构建合成的方法

笔记:

compositionArray:包含构建组合的资产.
AssetView:包含AVURLAsset的对象.

- (AVMutableComposition *)buildCompositionObjects
{
// no assets available, return nil
if ([compositionArray count] < 1)
{
    return nil;
}

// get the asset video size
AssetView * view =  [compositionArray objectAtIndex:0];
AVURLAsset * asset = view.asset;

CGSize videoSize = [asset naturalSize];

// create new composition
AVMutableComposition * cmp = [AVMutableComposition composition];

// set the size
cmp.naturalSize = videoSize;

// build composition
[self buildComposition:cmp];

// add any extra audio …
Run Code Online (Sandbox Code Playgroud)

iphone audio avfoundation

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

我可以使用Interface Builder在多个笔尖之间注入依赖关系吗?

我习惯从外面为我的对象提供依赖项.Interface Builder是一个帮助实现此目的的工具,但我无法使用多个笔尖.一旦我将主笔尖分成更多文件,我就不能再在不同笔尖中的对象之间建立连接.使用文件所有者并没有多大帮助,因为它只允许我将一个对象传递给一个笔尖.

例:

在此输入图像描述

这里A和B是一些更高级别的对象,C和D是某种更低级别的服务.只要所有物体都在一个大笔尖内(第一张图片),一切都很好.但是当我将笔尖分开分开A和B时,我很难将它们连接到C和D.(显然我不想创建C和D的两个实例,我希望A和B都能说同一个C和D不使用单身人士.)

是否可以在Interface Builder中执行此操作?怎么样?

cocoa dependency-injection interface-builder

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

如何从自定义框架中删除标头?

我有一个使用几个自定义框架的Mac Cocoa应用程序.(Apple将它们称为私有,它是与应用程序一起分发在应用程序包中的框架.)在每个框架中都有一个Headers包含框架头文件的文件夹.在生成的应用程序包中不需要这些,我想将它们保密.目前我使用Run Script构建阶段,其中包含以下行:

# Remove all headers from our private frameworks
find "${TARGET_BUILD_DIR}" -name Headers -print0 | xargs -0 rm -rf
Run Code Online (Sandbox Code Playgroud)

这是做到这一点的方式,还是有更好的方法?


关于我的项目结构的更多信息:我在我的主项目中嵌套了三个Xcode项目,这些项目将我的私有框架作为他们的产品.框架被设置为我的主要目标的目标依赖项.设置的最后一部分是复制文件构建阶段,它接受框架并将它们复制到应用程序包内的Frameworks子文件夹中.(希望这很清楚.)

macos xcode frameworks mac-frameworks

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

如何在Mac OS X中获取当前类型的鼠标光标?

如何在屏幕上显示当前类型的鼠标光标?(不仅在我的应用程序窗口,全局.)或者至少可以检测当前是否显示默认光标?无论是Carbon还是Cocoa都可以 - 甚至是其他工作API,最好是官方API.

这是我尝试过的:

NSCursor *sysCursor = [NSCursor currentSystemCursor];

if (sysCursor == nil) {
    NSLog(@"nil");
}

if ([sysCursor isEqual: [NSCursor arrowCursor]] || 
    [sysCursor isEqual: [NSCursor contextualMenuCursor]] || 
    [sysCursor isEqual: [NSCursor closedHandCursor]] || 
    [sysCursor isEqual: [NSCursor crosshairCursor]] || 
    [sysCursor isEqual: [NSCursor disappearingItemCursor]] || 
    [sysCursor isEqual: [NSCursor dragCopyCursor]] || 
    [sysCursor isEqual: [NSCursor dragLinkCursor]] || 
    [sysCursor isEqual: [NSCursor IBeamCursor]] || 
    [sysCursor isEqual: [NSCursor openHandCursor]] || 
    [sysCursor isEqual: [NSCursor operationNotAllowedCursor]] || 
    [sysCursor isEqual: [NSCursor pointingHandCursor]] || 
    [sysCursor isEqual: [NSCursor resizeDownCursor]] || 
    [sysCursor isEqual: [NSCursor …
Run Code Online (Sandbox Code Playgroud)

macos mouse cocoa macos-carbon cursor

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

沙盒后,辅助功能API停止工作

我的Mac App使用辅助功能API来移动(其他应用程序的)调整大小窗口.

我想将我的应用程序提交给MAS(Mac App Store).我已经读过要向MAS提交应用程序必须打开沙盒.

当我打开沙盒时,我的代码无法通过辅助功能API找到焦点窗口(始终返回NULL).问题是:辅助功能API不能与沙盒一起使用?

我注意到Mac App Store中有应用程序使用辅助功能API,现在不是强制沙盒吗?

提前致谢.

cocoa sandbox accessibility-api mac-app-store

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

如何使用红色窗口按钮检测我的窗口是否正在关闭?

我有一个对话窗口,可以通过自定义取消按钮或使用系统红色窗口按钮取消.取消对话框时,我需要执行一些简单的逻辑.如何检测到用户按下了红色按钮?

我知道我可以使用-windowWillClose:委托回调检测正在关闭的窗口.但是,当对话成功后以编程方式关闭窗口时,也会调用此回调.我也知道我可以简单地设置一个BOOL标志,但有更好的解决方案吗?如果我能检测到红色按钮激活,那将是最好的.

cocoa nswindow nswindowcontroller

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

理解'自我'并将自我设定为超级

我一直在关注一些教程,而且我正在堕落.有人可以帮忙吗?

我有以下init,这是一个实例方法.

- (id) initWithScore:(int) s {
    self = [super init];

    if (self) {
        score = s;

    }

    return self;
}
Run Code Online (Sandbox Code Playgroud)

现在通过代码阅读我将自己设置为超级init,因此self现在指向super.然后我检查自我是否有效并将得分设置为我在InitWIthScore上发送的值.到目前为止我有这个.

但是现在我返回指向超级的self,那么我如何返回我的子类?

因此,让我们说有人叫我的班级传递100,我的代码返回超级而不是类,所以它是如何工作的?调用代码的得分值是多少?

当然,是的它确实有效,但我不明白为什么:-(

objective-c ios

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

在iPhone上拨打电话的正确URL是什么?

是自动调用iPhone的代码吗?

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:11111111111"]]);
Run Code Online (Sandbox Code Playgroud)

iphone xcode

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

尽管存在测试失败,但仍会运行"cabal测试"

我有一个Cabal测试目标:

test-suite Tests
  type:              exitcode-stdio-1.0
  main-is:           Main.hs
  hs-source-dirs:    test, src
  build-depends:     base, …
  default-language:  Haskell2010
Run Code Online (Sandbox Code Playgroud)

一个简单的测试Main.hs:

import Test.HUnit
testSanity = TestCase $ assertEqual "Should fail" 2 1
main = runTestTT testSanity
Run Code Online (Sandbox Code Playgroud)

现在运行cabal test通行证:

Test suite Tests: RUNNING...
Test suite Tests: PASS
Test suite logged to: dist/test/Project-0.1.0-Tests.log
1 of 1 test suites (1 of 1 test cases) passed.
Run Code Online (Sandbox Code Playgroud)

即使在测试套件日志中正确记录了失败:

Test suite Tests: RUNNING...

Cases: 1  Tried: 0  Errors: 0  Failures: 0

### Failure:
Should fail
expected: 2 …
Run Code Online (Sandbox Code Playgroud)

haskell unit-testing cabal

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

如何在Swift中表示通用的JSON结构?

我想在Swift中表示一个通用的JSON对象:

let foo: [String: Any] = [
    "foo": 1,
    "bar": "baz",
]
Run Code Online (Sandbox Code Playgroud)

[String: Any]编译器建议的类型并不能很好地工作.我无法检查该类型的两个实例是否相等,例如,虽然这应该可以使用两个JSON树.

什么也行不通的是使用Codable机器将该值编码为JSON字符串:

let encoded = try JSONEncoder().encode(foo)
Run Code Online (Sandbox Code Playgroud)

哪个因错误而爆炸:

fatal error: Dictionary<String, Any> does not conform to Encodable because Any does not conform to Encodable.
Run Code Online (Sandbox Code Playgroud)

我知道我可以引入一个精确的类型,但我遵循通用的JSON结构.我甚至尝试为泛型JSON引入一种特定类型:

enum JSON {
    case string(String)
    case number(Float)
    case object([String:JSON])
    case array([JSON])
    case bool(Bool)
    case null
}
Run Code Online (Sandbox Code Playgroud)

但是当实现Codable这个枚举时我不知道如何实现encode(to:),因为一个键控容器(用于编码对象)需要一个特定的CodingKey参数,我不知道如何得到它.

是否真的不可能创建一个Equatable通用的JSON树并使用它编码Codable

json types swift codable

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