DrmManagerClient работает с локальными файлами, но не с файлами на сервере

Я пытаюсь реализовать DRM в моем приложении.
Но я столкнулся с проблемой. canHandle() всегда возвращает ложь.
А также DrmManagerClient.getOriginalMimeType(Uri); всегда возвращает ноль для http ссылок.
Но для файлов в хранилище все работает нормально.

DrmManagerClient mDrmManager;
mDrmManager = new DrmManagerClient(this);
String testUri = myUrl;
String mimeType = getOriginalMimeType( testUri );

Ниже приведен метод для получения mimetype, но, к сожалению, canHandle() всегда возвращает false.

    // get MimeType
public String getOriginalMimeType(String uri){
    String mime = null;

    try {
        if( mDrmManager.canHandle(Uri.parse(uri), null) ){
            mime = mDrmManager.getOriginalMimeType(Uri.parse(uri));
        }
    } catch (Exception e) {
        Log.w(TAG, e.toString());
    }

    return mime;
}

Я что-то пропустил?
Очевидным было бы то, что, вероятно, URL, который я использую, не подходит, но я пробовал разные URL, которые работают в другом приложении, но результат тот же.
Я также установил разрешение на доступ в Интернет в файле манифеста. У меня заканчиваются идеи, в чем проблема.
После изучения исходного кода DrmManagerClient я заметил, что canHandle() определяется следующим образом:

/**
 * Checks whether the given MIME type or URI can be handled.
 *
 * @param uri URI for the content to be handled.
 * @param mimeType MIME type of the object to be handled
 *
 * @return True if the given MIME type or URI can be handled; false if they cannot be handled.
 */
public boolean canHandle(Uri uri, String mimeType) {
    if ((null == uri || Uri.EMPTY == uri) && (null == mimeType || mimeType.equals(""))) {
        throw new IllegalArgumentException("Uri or the mimetype should be non null");
    }
    return canHandle(convertUriToPath(uri), mimeType);
}

Какие canHandle(Uri uri , String mimeType) в основном так же, как canHandle( String path, mimeType ) потому что он конвертирует Ури в Путь.
Означает ли это, что Http Urls не будет работать?

1 ответ

Решение

Я обнаружил, что проблема заключается в URL.
Я проверил с этими двумя ссылками, и теперь все в порядке.

Поток 1: http://commondatastorage.googleapis.com/wvmedia/sintel_main_720p_4br_tp.wvm

Поток 2: http://commondatastorage.googleapis.com/wvmedia/starz_main_720p_6br_tp.wvm

Надеюсь, это поможет кому-то в будущем.

Другие вопросы по тегам