Die Anzeige von Videos in React Native funktioniert nicht im Produktionsmodus, sondern im Simulator [expo-media-library/IOS

Programmierung für iOS
Guest
 Die Anzeige von Videos in React Native funktioniert nicht im Produktionsmodus, sondern im Simulator [expo-media-library/

Post by Guest »

Ich versuche einfach einen benutzerdefinierten Bild-/Video-Picker für eine React Native App zu erstellen. Was ich erreichen möchte, ist, Zugriff auf meine Fotos und Videos aus der Medienbibliothek meines Telefons zu erhalten.
Ich verwende React Native basierend auf Expo (derzeit SDK v50) und wenn ich meinen Code im Simulator ausführe, funktioniert alles einwandfrei. Wenn ich es jedoch auf meinem Telefon ausführe, treten zwei Probleme auf.
Dies ist mein Codeausschnitt zum Erteilen von Berechtigungen und zum Abrufen aller Video- und Fotoressourcen aus der Medienbibliothek:

Code: Select all

            const { status } = await MediaLibrary.requestPermissionsAsync();
if (status !== 'granted') {
console.warn('Permission not granted for Media Library');
return;
}

const media: MediaLibrary.PagedInfo = await MediaLibrary.getAssetsAsync({
mediaType: [MediaType.photo, MediaType.video],
first: 100,
after: pageInfo?.endCursor || undefined,
});

const mediaItemsWithFileUris = await Promise.all(
media.assets.map(async (asset: Asset) => {
const assetDetails: AssetInfo = await MediaLibrary.getAssetInfoAsync(asset.id);

return {
id: asset.id,
uri: asset.uri,
width: asset.width,
height: asset.height,
filename: asset.filename,
filepath: assetDetails.localUri,
duration: asset.duration,
mediaType: asset.mediaType,
syncStatus: SyncStatus.TO_BE_SYNCED,
};
})
);
1. Problem:[/b]
In der Produktion gibt MediaLibrary.getAssetsAsync nur Videos zurück. Es werden keine Assets vom Typ „Foto“ zurückgegeben. Im Simulator funktioniert es einwandfrei und gibt beides zurück.
2. Problem:
Bei Verwendung des Dateipfads bzw. der lokalen URI der Assets werden die Videos nicht angezeigt. Es wird auch kein Fehler oder eine Ausnahme ausgelöst. Im Simulator funktioniert es und zeigt sowohl Fotos als auch Videos basierend auf dem Dateipfad an. Die Syntax von beiden sieht folgendermaßen aus:
2.1 Simulator-Dateipfad: file:///Users//Library/Developer/CoreSimulator/Devices/2FC116CE-6C2E- 48FB-882C-A5C0E0E5A239/data/Media/DCIM/100APPLE/IMG_0009.MP4
2.2 Dateipfad im Produktionsmodus:
file:///var/mobile/Media/DCIM/106APPLE/IMG_6171.MP4
Könnte dies ein Problem mit den Berechtigungen sein?
Leider habe ich keine gültigen Informationen darüber gefunden, wie sich die Berechtigungen im Simulator- und Produktionsmodus unterscheiden. Ich hätte erwartet, dass es auch protokolliert wird, wenn es Probleme gegeben hätte.
Muss ich anstelle des auf dem file://-Protokoll basierenden einen anderen URI verwenden?
Ich habe es mit dem iOS-spezifischen ph:// URI versucht und es hat immer noch nicht funktioniert.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post