小编Mic*_*ael的帖子

如何在iOS上使用MPMoviePlayerController或AVPlayer播放没有文件扩展名的电影文件?

我想在iPad上播放iOS 4.3中的电影.当文件名具有文件扩展名时,我已成功使用MPMoviePlayerController和AVPlayer从远程URL加载文件.但是,当我使用不返回文件名的CDN(只是一个不可猜测的随机名称)时,MPMoviePlayerController或AVPlayer似乎都无法应对.

有没有办法告诉任何一个玩家它真的是一个x型电影,它应该继续播放它?

MPMoviePlayerController将从其更改的状态通知返回以下错误:

{
    MPMoviePlayerPlaybackDidFinishReasonUserInfoKey = 1;
    error = "Error Domain=MediaPlayerErrorDomain Code=-12847 \"This movie format is not supported.\" UserInfo=0x5b60030 {NSLocalizedDescription=This movie format is not supported.}";
}
Run Code Online (Sandbox Code Playgroud)

我知道该文件是一个有效的m4v文件,因为当我重命名它时一切都很好.

iphone mpmovieplayercontroller ios avplayer

25
推荐指数
2
解决办法
8627
查看次数

可以在进程之间使用CARemoteLayerServer和CARemoteLayerClient吗?

在Mac OS X Lion中,CARemoteLayerServer和CARemoteLayerClient被添加到QuartzCore.我一直试图调查它们是否适合在多个进程之间拆分图形应用程序,但没有成功.

我可以在一个进程中成功使用它们,其中包含一些代码:

- (void)buildLayerSingleProcess
{
    CARemoteLayerServer *server = [CARemoteLayerServer sharedServer];

    self.client = [[CARemoteLayerClient alloc] initWithServerPort: server.serverPort];    
    uint32_t clientID = self.client.clientId;    

    CALayer *layer1 = [CALayer layer];
    layer1.bounds = CGRectMake(0.0, 0.0, 100.0, 100.0);

    CGColorRef color = CGColorCreateGenericRGB(0.4, 0.2, 0.3, 1.0);
    [layer1 setBackgroundColor: color];
    CFRelease(color);

    [layer1 setOpacity: 0.75];
    [layer1 setBorderWidth: 5.0f];

    layer1.position = CGPointMake([[self.window contentView] frame].size.width / 2.0, [[self.window contentView] frame ].size.height / 2.0);

    self.client.layer = layer2;

    CALayer *servedLayer = [CALayer layerWithRemoteClientId: self.client.clientId];    
    [[[self.window contentView] layer] addSublayer: servedLayer];
}
Run Code Online (Sandbox Code Playgroud)

这很好,但我想尝试在进程之间做类似的事情.server.serverPort的类型为mach_port_t这一事实意味着它适合在进程之间使用. …

cocoa core-animation quartz-graphics

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

用于处理Objective C中的重复规则的库?

我想对Objective C应用程序中的重复规则做一些推理(目前针对iOS).我想做一些事情,比如当特定事件的下一次出现来自给定点时,或者特定日期和时间是否属于给定规则.

以前我在python中使用dateutil rrule模块编写了这样的代码,它运行得非常好,但还没有找到一个很好的Objective C等价物.Calendar Framework中有一个类听起来很有用,CalRecurrenceRule,但似乎没有任何方法来推断它产生的对象,所以没有任何帮助.

在python中编写了大量的时间代码,我知道正确的做法很难,所以我想避免自己编写递归逻辑,所以如果有人可以推荐一个可以做我想要的库,可以在iOS中使用应用程序,非常感谢.

- 迈克尔

datetime objective-c nsdate ios

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

如何配置 Windows Performance DataCollectors 以正确记录 DST?

作为应用程序的一部分,我正在尝试使用 Windows 性能计数器来监视机器运行状况。我有一些 DataCollector 配置为将数据写出为 CSV 或 BLG 格式。但是,我注意到时间戳没有每个样本时间戳的 TZ 信息,每个文件只有一次。这意味着在单个数据文件中,我将看到以下内容:

"(PDH-CSV 4.0) (GMT Standard Time)(-60)","\\MACHINE-NAME\% C2 Time"
"10/29/2017 01:59:44.562","88.359340674585567"
"10/29/2017 01:59:59.562","93.754278507632279"
"10/29/2017 01:00:14.562","89.834673388599242"
"10/29/2017 01:00:29.563","94.014449309223536"
Run Code Online (Sandbox Code Playgroud)

类似地,在转换中,您会看到丢失了一个小时的数据(与该小时离线的机器相比,这更难消除歧义)。

我认为二进制数据可能会存储更多信息,因此我也以 BLG 格式创建了相同的指标,并使用 PowerShell 读取信息。但是,在这种情况下,我仍然无法获取每个时间戳的时区信息。例如,

# $counters = Import-Counter -Path mysamples.blg

# $counters[10].Timestamp
29 October 2017 01:59:59

# $counters[11].Timestamp
29 October 2017 01:00:14

# $counters[10].Timestamp.IsDaylightSavingTime()
False
# $counters[11].Timestamp.IsDaylightSavingTime()
False

# $counters[10].Timestamp.ToFileTimeUtc()
131537159995620000
# $counters[11].Timestamp.ToFileTimeUtc()
131537124145620000
Run Code Online (Sandbox Code Playgroud)

有没有办法获得与性能计数器数据中的时间戳相关联的正确 TZ 信息,或者是否有办法将 UTC 时间添加到日志而不是 TZ 偏移时间戳?

windows performancecounter

5
推荐指数
0
解决办法
236
查看次数