我收到错误消息 - 使用未声明的标识符'kUTTypeMovie'
在下面的代码中 -
-(IBAction)selectVideo:(id)sender {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
imagePicker.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil];
imagePicker.delegate = self;
[self presentModalViewController:imagePicker animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
它出什么问题了?
我从apple的文档中复制了一些代码- 我得到了这两个错误:
Undefined symbols for architecture i386:
"_kUTTypeImage", referenced from:
-[ImagePicker imagePickerController:didFinishPickingMediaWithInfo:] in ImagePicker.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:代码:
- (IBAction) showSavedMediaBrowser {
[self startMediaBrowserFromViewController: self
usingDelegate: (id)self];
}
- (BOOL) startMediaBrowserFromViewController: (UIViewController*) controller
usingDelegate: (id <UIImagePickerControllerDelegate,
UINavigationControllerDelegate>) delegate {
if (([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeSavedPhotosAlbum] == NO)
|| (delegate == nil)
|| (controller == nil))
return NO;
UIImagePickerController *mediaUI = [[UIImagePickerController …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码从PhotoLibrary中选择视频
imageController.mediaTypes = [kUTTypeMovie: NSString]
Run Code Online (Sandbox Code Playgroud)
选择视频后,当它正在压缩时,我正在摆脱边界问题.
我在网上搜索,发现以下行.我无法将其转换为Swift版本(链接)
imageController.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil]
请告知我们上面的Swift版本.如果任何人都可以提供Swift版本,这非常有用.
问题2:
我想在应用中显示所选视频,并且需要在点按时播放.我们可以在没有外部插件和使用内置库的情况下完成吗?
ios swift uiimagepickercontrollermediatype mobilecoreservices
有没有办法将所有不同的UTType 扩展类型获取为字符串?我专门需要它们来处理图像、音频和视频。
我遵循了这个答案,但它没有给我所有的扩展
var types = [String]()
let utiTypes = [kUTTypeImage, kUTTypeMovie, kUTTypeVideo, kUTTypeMP3, kUTTypeAudio, kUTTypeQuickTimeMovie, kUTTypeMPEG, kUTTypeMPEG2Video, kUTTypeMPEG2TransportStream, kUTTypeMPEG4, kUTTypeMPEG4Audio, kUTTypeAppleProtectedMPEG4Audio, kUTTypeAppleProtectedMPEG4Video, kUTTypeAVIMovie, kUTTypeAudioInterchangeFileFormat, kUTTypeWaveformAudio, kUTTypeMIDIAudio, kUTTypeLivePhoto, kUTTypeTIFF, kUTTypeGIF, kUTTypeQuickTimeImage, kUTTypeAppleICNS]
for type in utiTypes {
let str = String(type)
guard let utiStr = fileExtension(for: str) else { continue }
types.appent(utiStr)
}
dump(types)
Run Code Online (Sandbox Code Playgroud)
结果是
15 elements // there are really 21 types
- "jpeg"
- "png"
- "mov"
- "mpg"
- "m2v"
- "ts" …Run Code Online (Sandbox Code Playgroud) ios swift uidocumentpickerviewcontroller mobilecoreservices uttype
在我的应用程序中,我想在视频模式下打开相机.所以我写下面的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[window addSubview:viewController.view];
[window makeKeyAndVisible];
UIImagePickerController *ipc;
ipc = [[UIImagePickerController alloc] init];
ipc.sourceType = UIImagePickerControllerSourceTypeCamera;
ipc.mediaTypes = [NSArray arrayWithObject:(NSString *) kUTTypeMovie];
[viewController presentModalViewController:ipc animated:YES];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
此代码适用于iPhone 3.1.3,但在iOS4上不起作用.我可以在iOS4上使用UIImagePickerController作为视频吗?
ios ×5
swift ×2
cocoa-touch ×1
ios4 ×1
objective-c ×1
uidocumentpickerviewcontroller ×1
uiimagepickercontrollermediatype ×1
uttype ×1