<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_media_files(cls, packager, media_packages, media_type, extra_files):
 """Return source or output media files for a list of packages. This will go through the media files belonging to the provided list of packages referenced in a Media class and return the output files (if Pipeline is enabled) or the source files (if not enabled). Args: packager (pipeline.packager.Packager):
 The packager responsible for media compilation for this type of package. media_packages (list of unicode):
 The list of media packages referenced in Media to compile or return. extra_files (list of unicode):
 The list of extra files to include in the result. This would be the list stored in the Media class's original :py:attr:`css` or :py:attr:`js` attributes. Returns: list: The list of media files for the given packages. """

        source_files = list(extra_files)

        if (not settings.PIPELINE_ENABLED and
            settings.PIPELINE_COLLECTOR_ENABLED):
            default_collector.collect()

        for media_package in media_packages:
            package = packager.package_for(media_type, media_package)

            if settings.PIPELINE_ENABLED:
                source_files.append(
                    staticfiles_storage.url(package.output_filename))
            else:
                source_files += packager.compile(package.paths)

        return source_files