小编san*_*san的帖子

处理AVPlayer停顿

我试图抓住一个AVPlayer无法继续播放的时刻,以防没有更多媒体可用(网络太慢,信号丢失等).如文档和不同的示例中所述,我正在使用它KVO来检测:

item = [[AVPlayerItem alloc] initWithURL:audioURL];
player = [AVPlayer playerWithPlayerItem:item];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onItemNotification:) name:AVPlayerItemPlaybackStalledNotification object:item];
[item addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil];
[item addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil];

...

- (void) onItemNotification:(NSNotification*)not
{
    NSLog(@"Item notification: %@", not.name);
}

...

- (void) observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
{
    NSLog(@"Observe keyPath %@", keyPath);
}
Run Code Online (Sandbox Code Playgroud)

我正在开始播放并WiFi在此之后关闭.不幸的是,playbackBufferEmpty"也没有AVPlayerItemPlaybackStalledNotification"来了.在播放停止的那一刻,我只收到一个AVPlayerItemTimeJumpedNotification,就是全部.但是,当我收到这些通知时,至少有2次.但我无法弄清楚每次播放停止时如何获取它们.难道我做错了什么?

objective-c key-value-observing ios avplayer

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

MPMediaItemArtwork和透明度

在iPhone锁屏上尝试获取透明封面图像时,我得到了白色背景,它应该是透明的.

MPMediaItemArtwork可以使用带alpha通道的图像吗?我在官方文档中没有发现任何相关内容.

在此输入图像描述

alpha avaudioplayer lockscreen ios mpnowplayinginfocenter

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

多边形填充算法

我正在研究用于3d打印目的的网格切片实用程序.通常,它应该将3d网格模型切割成2d形状(多个多边形,可能带有孔),并使用特定图案填充确定厚度的路径.这些路径将用于生成3d打印机固件的gcode命令.

有各种开源工具具有相同的目的,用python和perl编写.但我的目标是了解切片器的工作流程,并用C或C++编写自己的工具.

到目前为止,我能够获得切片的轮廓,现在要用路径填充它们.问题是我发现没有有效的算法来做到这一点.填充示例的示意图:

任何人都可以建议如何生成这些填充路径?谢谢.


目前我正在使用以下算法:

  1. 找到形状的边界框
  2. 用线垂直分割bb(行数= bb.width/path.thickness)
  3. 找到形状和每条线的交叉点(每条线应该是两个点)
  4. 从这些点构造一个从边界偏移的线段
  5. 添加一段将原始段连接在一起形成一条线条
  6. 我们准备生成gcode或绘制路径

简单的填充算法

这是一种简单快速的算法,但它不适用于凹多边形和带孔的多边形.它也只使用一个指定的模式.

algorithm geometry polygon slice

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