草庐IT

AVPlayer-Swift

全部标签

Swift:在UicollectionView的正确部分中加载单元格?

我将同一类型的两个对象加载到两个单独的数组中。第一个数组是类型[Post],以及第二个数组。我的CollectionView中有两个部分,我想将第一个数组加载到第一部分,将第二个数组加入第二部分。我正在从Firebase获取数据,并将对象附加到数组中。在我的numberOfItemsInSection我正在检查该部分是否等于一个,第一个加载,以及该部分等于两个,请加载第二个。这可以正常工作,但问题在于,它仅在每个部分中加载正确的单元格数量,但不加载正确的信息。它只是从第一个数组加载了先前获取的数据。我该如何解决?谢谢...classProfileController:UICollectionV

ios - 为什么委托(delegate)方法需要在 Swift 中公开?

我正在快速开发一个框架。我正在创建一个类来处理框架中的BLE内容。此类应该是公开的,因为我需要从使用我的框架的外部应用程序访问此类。我的类(class)结构如下:publicclassMyClass:NSObject,CBCentralManagerDelegate{}这里MyClass是public的,确认了一个公共(public)协议(protocol)CBCentralManagerDelegate。编译器强制我将它的委托(delegate)方法声明为公共(public)的。所以我的实现是这样的:publicclassMyClass:NSObject,CBCentralManag

ios - 在 Swift 3.1 中调配 CocoaTouch 类

我在XCode8.3中使用Swift3.1并看到警告:Method'initialize()'definesObjective-Cclassmethod'initialize',whichisnotguaranteedtobeinvokedbySwiftandwillbedisallowedinfutureversions我使用SwizzlingCocoaTouchclass并且对该部分有疑问:extensionUIViewController{openoverrideclassfuncinitialize(){//makesurethisisn'tasubclassguardself

ios - Swift 开发过程中,资源文件放在哪里?

letpath=Bundle.main.path(forResource:"bang.wav",ofType:nil)!leturl=URL(fileURLWithPath:path)letsound=tryAVAudioPlayer(contentsOf:url)我找到了这个很好的播放声音的示例代码。此处未回答的问题:bang.wav需要位于何处才能在开发和调试期间被Bundle.main.path找到?如果MacOS和iOS的答案不同,那么两者都值得关注。 最佳答案 Bundle资源位于/Contents/Resources中,

ios - 如何在swift 3中获取本地时区日期

我以这种方式从给定日期获取年、月和日。lettoday=Date()varcalendar=Calendar.currentcalendar.timeZone=.currentletcomponents=calendar.dateComponents([.year,.month,.day],from:today)letday=components.day但我比现在提前了一天。我该如何解决这个问题? 最佳答案 letdate=Date().description(with:Locale.current)print("date--->\

Swift的五种访问控制权限详解

我下面所说的成员,是指的类型的成员变量和成员函数.一.概述Swift的权限控制在英语中称为Privacy,又可以叫accesscontrol共有五种:internal默认权限.在模块内的文件,其类定义和函数定义是互相可见的,但是模块外是不可见的,所以它又可理解为:对模块私有.这一点和C,Objective-C不同,在C和Objective-C里面,即使在模块内部,如果没有使用include或者import语句,文件间的对象就彼此不可见.fileprivate(比internal权限更小)只在文件内可见.即:2个定义在同一个文件中的类型互相之间可见,但是其他文件就不可见这两个类型.private

Swift 让ScrollView滚动到具体某个位置

1. 使用scrollToItem方法滚动集合视图DispatchQueue.main.asyncAfter(deadline:.now()+0.1){letfirstIndexPath=IndexPath(item:0,section:0)letlastIndexPath=IndexPath(item:self.recordArray.count-1,section:0)//Scrolltofirstitemself.collectionView.scrollToItem(at:firstIndexPath,at:.left,animated:false)//Delayforashortti

iphone - 确定 AVPlayer 比特率

我正在使用AVPlayer和AVPlayerItem播放实时音频流,并尝试确定流的当前比特率。我在网上搜索并找到了这个帮助:DetermeningMPMovieControllerbit-rate受上述线程的启发,我尝试使用以下代码对其进行计算:NSArray*logEvents=playerItem.accessLog.events;AVPlayerItemAccessLogEvent*event=(AVPlayerItemAccessLogEvent*)[logEventslastObject];doublebitRate=event.observedBitrate;但是在计时器内

ios - AVPlayer 播放 m3u8 流时如何捕获图像?

我使用AVPlayer播放一个m3u8文件,我想在这些代码中捕获图像:AVAssetImageGenerator*gen=[[AVAssetImageGeneratoralloc]initWithAsset:self.player.currentItem.asset];gen.appliesPreferredTrackTransform=YES;NSError*error=nil;CMTimeactualTime;CMTimenow=self.player.currentTime;[gensetRequestedTimeToleranceAfter:kCMTimeZero];[gens

iOS 将通过 AVPlayer 播放的音频添加到操作系统默认播放器?

所以想法是-当我们在iPhone的音乐应用程序中播放音频并按下主页按钮然后从屏幕底部滑动时,我们可以看到音频在默认操作系统播放器中播放,带有播放/暂停控件和音频继续播放。现在我需要做的是,我在我的应用程序中使用AVAudioPlayer播放音频,如果用户按下主页按钮,音频需要像音乐应用程序一样继续播放。但我不知道如何在操作系统默认播放器中添加音频?任何帮助或建议将不胜感激。编辑:我需要使用流播放音频,所以我想我需要使用AVPlayer而不是AVAudioPlayer 最佳答案 您可以使用MPMovieplayerController