Я конвертирую наше приложение, чтобы использовать Рамки фотографий iOS8, структура ALAsset явно является гражданином второго класса под iOS8.NSURL от PHAsset
У меня возникла проблема в том, что наша архитектура действительно хочет, чтобы NSURL представлял местоположение носителя на «диске». Мы используем его для загрузки медиа на наши серверы для дальнейшей обработки.
Это было легко с ALAsset:
ALAssetRepresentation *rep = [asset defaultRepresentation];
self.originalVideo = rep.url;
Но я просто не видел эту способность в PHAsset. Я предполагаю, что я могу назвать:
imageManager.requestImageDataForAsset
, а затем записать его в виде временного места в файловой системе, но это кажется ужасно тяжеловесным и расточительно, не говоря уже о потенциально медленно.
Есть ли способ получить это, или я собираюсь иметь рефакторинг большего количества моего приложения, чтобы использовать только NSURL для iOS7 и какой-либо другой метод для iOS8?
Глядя на мой код немного больше единственная причина, почему я использую URL, чтобы кормить его AVAssetExportSession и/или AVAssetImageGenerator, поэтому, я думаю, я просто заменю эти вызовы. Опять же, как только я подаю это тем, мне все еще нужен NSURL, чтобы перейти к нашему загрузчику, поэтому я готов поспорить, что проблема все еще существует. –
Из вашего комментария здесь, кажется, вы уже поняли это для себя, но для других, чтобы увидеть это здесь: Если вам нужно только использовать URL-адрес для более старых методов (например, AVAssetExportSession), вы, вероятно, можете использовать более новые версии из них, которые соответствуют PHASset, а не AVASset (AVURLAsset). Например: requestExportSessionForVideo и requestPlayerItemForVideo из PHImageManager.defaultManager() –