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
Надеюсь, это поможет кому-то в будущем.