我正在进行音频合并,它在iOS 10上工作正常,但在iOS 11上无效.
如何在iOS 11中访问音频文件路径?
NSArray *path; path = [NSArray arrayWithObjects: [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) lastObject],[NSString stringWithFormat:@"%@%@",trackName,(i==0) ? (_editRecoding) ? fileExtension : @".mp3" : ([trackName isEqualToString:@"temp"]) ? @".mp3" : @""],nil]; AVURLAsset* audioAsset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPathComponents:path] options:nil]; NSLog(@"audioAsset : %@",audioAsset); NSLog(@"AVMediaTypeAudio : %@",[audioAsset tracksWithMediaType:AVMediaTypeAudio]);
iOS 10中的输出:
audioAsset : <AVURLAsset: 0x17422b480,URL = file:///var/mobile/Containers/Data/Application/6E092FA1-BE2C-4ECC-897F-3599005F2936/Documents/temp.mp3> AVMediaTypeAudio : ( "<AVAssetTrack: 0x170011fb0,trackID = 1,mediaType = soun>" )
iOS 11中的输出:
audioAsset : <AVURLAsset: 0x1c4437ba0,URL = file:///var/mobile/Containers/Data/Application/EC64309F-7E09-4DAE-B19C-2A8F160627C3/Documents/temp.mp3> AVMediaTypeAudio : ( )
解决方法
How can i access the audio path in ios 11?
没有比你已经使用过的方法不同的方法.
根据AVMediaType documentation,IOS11没有任何变更.
解:
我打赌你的IOS 11版本是11.0.2,所以你应该升级到11.0.3,他们修复了这个版本的音频问题,看一下发行说明.
Apple的iOS 11.0.3发行说明列出了针对两个特定问题的修复:
1.修复了某些iPhone 7和iPhone 7 Plus设备无法使用音频和触觉反馈的问题
2.解决了某些iPhone 6s显示器上的触摸输入没有响应的问题,因为它们不是真正Apple部件的服务
并且在您更新到最新的第一次之前检查升级后我将遇到的新问题.
Prevention is better than cure
在决定你应该做什么之后,请查看11.0.3 update.