我试图获取音频文件的持续时间来修剪它们,我使用下面的代码,
audioAsset = [AVURLAsset assetWithURL:itemURL];
CMTime assetTime = [audioAsset duration];
Float64 duration = CMTimeGetSeconds(assetTime);
Run Code Online (Sandbox Code Playgroud)
当我提供媒体库的任何音频文件的itemURL时,我得到适当的持续时间,然后我能够修剪音频文件.然后我将修剪过的音频文件保存在文档目录中.但是当我尝试修剪已经修剪过的文件时,相同的代码会将0作为持续时间返回0.但是我可以播放修剪过的文件并使用AVAudioPlayer获取持续时间,但AVURLAsset的问题是什么我无法弄清楚.
有人可以帮忙吗?我已经在stackoverflow中尝试了几乎所有这些问题的答案.
我需要形成一个20字节的数据包,并通过蓝牙将有效载荷发送到硬件外设.
这个20字节的数据包在内部分为14个数据集,每个11位,最后6位应为空字符.
因此,总计: 160位(20字节)= 14(集)*11(位)+6(空字符)
11位再次分为3组,每组2位,3位和6位.然而,对于主要问题并不重要,我目前能够通过采用'Int16'来形成11位.我知道,我将进行移位操作以过滤11位.
如果我只有一个数据集,那么我应该填充除了带有空字符的前11位之外的所有20个字节,如果两个数据集除了22位之外的所有数据都应该分别为空字符.
我面临的问题是形成这个顺序的160位,因为奇数位是11.我想采取'Int'并执行shift(<<)操作然后按位OR(|)但是Int是64位.
目前我认为采用20的固定大小的字符数组将适合这种情况.虽然从概念上来说我认为这是最好的方式,但从程序上来说,我无法形成具有实现这一目标的所有条件的逻辑.我想我需要将所有逻辑放在一个循环中.
任何人都可以告诉它是实现这一目标的正确方法,并指导我解决它,如果这是最好的方法.或者指出任何其他方式(如果可用).
我将应用程序从一个屏幕切换UISearchBar到UISearchController.这是一个tableview控制器.根据设计,我不应该首先在UI上保留搜索栏,除非它被激活,(通常将搜索栏保持为'tableHeaderView'是一种常见的做法).问题是,我有一个搜索按钮,当点击'搜索栏'应该被激活并成为第一响应者.
点击取消按钮时,应从UI中删除它.然而,当我点击导航栏上的"搜索栏按钮"时,UISearchController会激活,提供暗淡的背景但键盘不会出现.我需要再次点击搜索栏以在UI上显示键盘.
这是我的搜索栏按钮动作:
@IBAction func onTapSearch(_ sender: AnyObject) {
self.view.addSubview(searchController.searchBar)
searchController.isActive = true
searchController.becomeFirstResponder()
isSearchActive = true
self.navigationController?.setToolbarHidden(true, animated: false)
}
Run Code Online (Sandbox Code Playgroud)
我UISearchController在我的viewDidLoad方法中配置.如果您想要查看该部分代码,请告诉我,但这是通常的代码.我确认我不会在resignFirstResponder()任何地方调用任何方法.
我想检查一个月内是否存在特定日期.但无法找到任何帮助.举个例子,我在Playground中尝试了下面的代码;
var components = DateComponents()
components.month = 2
components.year = 2016
components.day = 30
components.calendar = Calendar.current
components.date
Run Code Online (Sandbox Code Playgroud)
这给出了答案;
"Mar 1, 2016, 12:00 AM"
Run Code Online (Sandbox Code Playgroud)
所以它做的是它试图用TimeZones操纵并移动针.因此,我无法找到一种方法来检查特定日期和特定日期是否存在.任何人都可以指导.
我有多个数组(最多15个),每个最多可以有1800个对象.
我需要将它们组合成一个数组,这样我就可以应用一个分隔符(',')来生成一个csv文件.问题是当我将它们组合成一个单独的数组时,它必须按顺序组合,就像每个数组的第一个对象应该先插入,然后是第二个对象索引,然后是第三个,依此类推.
我可以通过使用for-in循环来实现我想要的结果.然而,这并不十分乐观.我觉得可以使用swift中提供的功能方法(使用map,reduce和filter函数)以更清晰的方式完成.
但是我无法将它们完美地结合起来.任何人都可以帮助我使用快速的功能方法来实现结果.
PS:如果您希望我发布for-in循环代码,请告诉我,但我认为这不是必需的.
swift ×4
ios ×3
arrays ×1
audio ×1
avurlasset ×1
calendar ×1
duration ×1
nsdate ×1
swift3 ×1
uisearchbar ×1