Второй метод, правда, не очень поможет, он же, насколько помню, проверяет возможно произведения без остановки и подгрузки, а файл может быть в МБ 50-100
А с первым примерно вот так:
Получаем расширение файла
Проверяем возможность воспроизвести
?
Тогда если файл бит, будет просто бесконечная загрузка.