Аналогичные вещи произошли в моем приложении, которое использует AVAudioPlayer. Я пробовал с [NSURL URLWithString:path]
и обнаружил, что он не может открыть определенные mp3-файлы. Я искал ошибку по строке [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:path] fileTypeHint:AVFileTypeMPEGLayer3 error:&error]
, но ошибка была просто nil
Однако было решено, заменив URL на [NSURL fileURLWithPath:path]
.
В обоих случаях путь path NSString * @"/var/mobile/Containers/Data/Application/4D96D4AE-2ED4-40B0-85D2-230E1AFA90E7/Documents/01-AudioTrack 01.mp3" 0x1457a8f0
Все еще я не знаю причину, но теперь я должен быть осторожным, используя [NSURL URLWithString:]
.
PS. В NSURL справочном документе, Apple говорит, как показано ниже:
ВАЖНО Для создания объектов NSURL для файловой системы путей, используйте fileURLWithPath: isDirectory: вместо этого.
, который четко указывает на [NSURL fileURLWithPath:]
следует использовать для открытия файла, хотя [NSURL URLWithString]
также работает в некоторых случаях.
«Также мне нужно показать последний кадр как неподвижное изображение, когда видео HSL заканчивается» Не связано с первой частью вашего вопроса. Задайте это другим вопросом! Два по цене одного. – matt