Class ContainerUtils


  • public class ContainerUtils
    extends Object
    Helper class that provides utilities to handle zip containers that contain DASH content. The zip always needs to contain a file named meta.json. That file is a json file that must at least have an entry "manifest" that points to the Manifest of the content within the zip file
    • Constructor Detail

      • ContainerUtils

        public ContainerUtils()
    • Method Detail

      • readMetaData

        @Nullable
        public static JSONObject readMetaData​(@NonNull
                                              File zipSource)
                                       throws IOException,
                                              JSONException
        Take a zip file and looks for a "meta.json" entry.
        Parameters:
        zipSource - The
        Returns:
        The parsed entry or null if no such entry exists
        Throws:
        IOException - In case an error occurs while reading the entry
        JSONException - In case an error occurs while parsing the entry
      • getManifestUrl

        public static Uri getManifestUrl​(@NonNull
                                         File zipFile)
                                  throws IOException,
                                         JSONException
        Reads the zip files meta.json file and returns a Uri to that Manifest. The uri constructed here can be passed to the PlayerController to open the content in the zip.
        Parameters:
        zipFile - The zip file
        Returns:
        The Uri to the Manifest in the ZIP
        Throws:
        IOException - In case an error occurred while reading data or no meta-data was found or the meta entries are not valid
        JSONException - In case an error occurred while parsing the meta-data
      • getManifestUrl

        public static Uri getManifestUrl​(@NonNull
                                         File zipFile,
                                         @NonNull
                                         JSONObject metadata)
                                  throws IOException,
                                         JSONException
        Takes the zip files meta.json content and returns a Uri to that Manifest. The uri constructed here can be passed to the PlayerController to open the content in the zip.
        Parameters:
        zipFile - The zip file
        metadata - The ZIP meta-data
        Returns:
        The Uri to the Manifest in the ZIP
        Throws:
        IOException - In case an error occurred while reading data or no meta-data was found or the meta entries are not valid
        JSONException - In case an error occurred while parsing the meta-data
      • splitEntryPath

        public static Pair<String,​String> splitEntryPath​(Uri uri)
        Takes a zip file URI of the form zip:/path/to/file.zip/entry/path.txt and returns a pair where the first element is the path to the zip file and the second entry is the path to the entry. In the example above, this method returns /path/to/file.zip, entry/path.txt.

        The method returns null if no zip file could be found. The method checks for the existence of the zip file but not the existence of the entry within the zip.

        Parameters:
        uri - The URI
        Returns:
        Pair of zip and entry path or null