将视频从Resource复制到UIPasteboard

时间:2016-02-18 11:27:53

标签: ios objective-c iphone keyboard uipasteboard

我正在使用键盘扩展开发自定义键盘。

我想将资源从我的资源文件夹复制到UIPasteboard。为此,我使用下面的代码,但没有运气

NSBundle *bundle = [NSBundle mainBundle];
NSString *moviePath = [bundle pathForResource:@"SampleVideo_1280x720_1mb" ofType:@"mp4"];
NSURL *movieURL = [NSURL fileURLWithPath:moviePath];
NSData *data = [NSData dataWithContentsOfURL:movieURL];
[[UIPasteboard generalPasteboard]setPersistent:YES];
[[UIPasteboard generalPasteboard] setData:data forPasteboardType:(NSString *)kUTTypeVideo];

你能帮帮我吗?

还有一件事可能吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您正在使用的pasteboardType(kUTTypeVideo)适用于没有声音的电影类型。这不行。如果您使用该pasteboardType将mp4文件复制到粘贴板,然后说,将其粘贴到iMessage聊天字段中,它将显示它是一种未知且无法播放的格式。

相反,请使用kUTTypeQuickTimeMovie或kUTTypeMPEG4。这将有效。

此外,无需setPersistent为Yes;这是一般的粘贴板,它是一个超越任何应用程序的时空的系统粘贴板,因此您不需要这样做。 :)

答案 1 :(得分:0)

试试这段代码。它对我有用。

    let pb = UIPasteboard.generalPasteboard()
    let url: NSURL = NSBundle.mainBundle().URLForResource("\(tempArray[indexPath.row])", withExtension: "mp4")!
    let data1: NSData = try! NSData(contentsOfURL: url, options: NSDataReadingOptions.DataReadingMappedIfSafe)

    let data: NSData = NSData(contentsOfURL: url)!
    print(data)
    pb.persistent = true
    pb.setData(data1, forPasteboardType: "public.mpeg-4")

如果您想从NSBundle获取视频的网址,则需要在本地添加视频。