1. 程式人生 > 實用技巧 >三步為你的App整合LivePhoto功能

三步為你的App整合LivePhoto功能

>>> hot3.png

  • 摘要:LivePhoto是iOS9新推出的一種拍照方式,類似於拍攝Gif圖或錄製視訊片段生成圖片。如果沒有畫面感,可以聯想《哈利波特》霍格沃茨城堡的壁畫,哈哈,很炫酷有木有,但坑爹的是隻有iphone6S以上機型才可以使用LivePhoto拍照,6S以下機型暫只可檢視。效果如下:LivePhoto效果圖具體如何使用可參照如下網址,本文主要在程式碼角度幫助大家為自己的App新增展示LivePhoto圖片的功能。蘋果LivePhoto怎麼拍,LivePhotos怎麼使用第一步,開啟系統相
  • LivePhoto是iOS9新推出的一種拍照方式,類似於拍攝Gif圖或錄製視訊片段生成圖片。如果沒有畫面感,可以聯想《哈利波特》霍格沃茨城堡的壁畫,哈哈,很炫酷有木有,但坑爹的是隻有iphone6S以上機型才可以使用LivePhoto拍照,6S以下機型暫只可檢視。效果如下:


    三步為你的App整合LivePhoto功能_IOS
    LivePhoto效果圖


    具體如何使用可參照如下網址,本文主要在程式碼角度幫助大家為自己的App新增展示LivePhoto圖片的功能。
    蘋果 Live Photo 怎麼拍, Live Photos怎麼使用


    第一步,開啟系統相簿

    我們需要建立UIImagePickerController物件,設定對應來源型別,代理等,這裡需要注意要額外設定mediaTypes(媒體型別),以支援載入LivePhoto型別圖片。還有為了適配iOS10,不要忘記在info.plist中設定隱私許可權Privacy - Photo Library Usage Description


    UIImagePickerController *ipc = [[UIImagePickerController alloc]init];
    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    ipc.delegate = self;
    // 設定mediaTypes 新增LivePhoto型別圖片
    NSArray *mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeLivePhoto];
    ipc.mediaTypes = mediaTypes;
    [self presentViewController:ipc animated:YES completion:^{
    }];

    若發現kUTTypeImage型別報錯,不要忘記新增MobileCoreServices框架


    第二步,獲取相簿中LivePhoto圖片

    對圖片型別進行判斷,如果為普通圖片,使用UIImageView載入即可,若為LivePhoto型別,使用PHPhotoLiveView進行顯示。這裡需要新增Photos與PhotosUI框架,分別用於對LivePhoto的判斷與顯示。具體程式碼如下:


    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {
    [self dismissViewControllerAnimated:YES completion:^{
    PHLivePhoto *photo = [info objectForKey:UIImagePickerControllerLivePhoto];
    if (photo) {
    PHLivePhotoView *photoView = [[PHLivePhotoView alloc]initWithFrame:self.view.bounds];
    photoView.livePhoto = [info objectForKey:UIImagePickerControllerLivePhoto];
    photoView.contentMode = UIViewContentModeScaleAspectFill;
    [self.view addSubview:photoView];
    } else {
    NSLog(@"普通圖片,使用UIImageView載入即可");
    }
    }];
    }
    第三步,讓圖片動起來

    PhotosUI框架為我們提供了兩種LivePhoto的動態效果,一種為持續數秒,第二種為全部迴圈展示。
    可通過如下方法進行呼叫


    //效果1
    [photoView startPlaybackWithStyle:PHLivePhotoViewPlaybackStyleHint];
    //效果2
    [photoView startPlaybackWithStyle:PHLivePhotoViewPlaybackStyleFull];

    對應的停止動畫的方法為


    [photoView stopPlayback];

    是不是So easy?
    參考連結:How to display Live Photos in a view controller


    demo下載連結

    三步為你的App整合LivePhoto功能demo

  • 以上是三步為你的App整合LivePhoto功能的內容,更多LivePhoto整合功能APP的內容,請您使用右上方搜尋功能獲取相關資訊。

轉載於:https://my.oschina.net/huqiji/blog/1832693