2014-10-27 19 views
4

編輯去除從標題版本,但是這個開始與iOS 8.1PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo沒有返回視頻

我有我建立一個應用程序,將從用戶Photos.app播放視頻。當我在8.0.2設備上安裝應用程序時,我從[PHAsset fetchAssetsWithMediaType:options:]調用中獲得視頻列表沒有問題,但是當我在8.1設備上安裝完全相同的代碼時,我返回了0個視頻。有沒有人遇到過這個? 8.1是否改變了我們應該再次訪問Photos.app中的照片/視頻的方式?

PHFetchOptions *options = [[PHFetchOptions alloc] init]; 
PHFetchResult *videos = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:options]; 

任何幫助,將不勝感激。

更新

修改我的代碼使用PHAssetCollection電話,試圖獲取這張專輯,我也得到了一定的成功,現在兩個版本,我得到了我6個視頻3(遺憾的是不一樣的3每次) 。

PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options]; 
PHFetchResult *videos = [PHAsset fetchKeyAssetsInAssetCollection:collection[0] options:nil]; 

編輯#2

好吧,我剛剛看到我的錯誤在上面的代碼,我要離開的人誰做我做同樣的傻事。我的視頻抓取線呼喚「主要」資產,這就是爲什麼我只得到3

PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options]; 
PHFetchResult *videos = [PHAsset fetchAssetsInAssetCollection:collection[0] options:nil]; 
+0

它對我來說很好,通過代碼我可以得到40個視頻,這正是我的Photos.app視頻專輯中的視頻數量。 – gabbler 2014-10-28 01:56:36

+0

@gabbler爲了清晰起見,我添加了我正在運行的代碼,這與您正在做的事情相匹配嗎?此外,當您同步視頻時,是否通過iPhoto專輯完成?試圖映射所有變量。 – 2014-10-28 17:22:31

+0

是的,它匹配。我沒有將我的視頻上傳到iCloud。 – gabbler 2014-10-28 17:35:03

回答

2

自我應答,所以如果別人運行到這一點,他們可能有一個答案。

所以我仍然不確定爲什麼我的原始代碼在升級到8.1後不起作用,但是編輯#2中的代碼通過在另一個方向來解決問題。

PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options]; 
PHFetchResult *videos = [PHAsset fetchAssetsInAssetCollection:collection[0] options:nil]; 
+0

0資產來自視頻。希望你能檢查ios 10.2。他們不再在照片應用程序託管 – 2017-05-31 12:30:36

0

顯然,在10.1雙方

PHFetchResult *videos = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:options]; 

PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options]; 
PHFetchResult *videos = [PHAsset fetchAssetsInAssetCollection:collection[0] options:nil]; 

工作,但只有當視頻被坐在照片應用程序。 視頻應用 中的家庭(和其他類型)視頻不可迭代。

所以你不能使用遲到的iTunes來獲得視頻到設備上,你必須使用AirDrop的視頻最終在照片,而不是視頻應用程序。

相關問題