2014-01-18 4 views
0

Я работаю с AVAsset в своем приложении и встретил следующую проблему. Когда я пишу что-то вроде этого:AVAsset from app sandbox

AVAsset *audioAsset = [AVAsset assetWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/Hello.mp3", [[NSBundle mainBundle] resourcePath]]]]; 

свою работу отлично. Но когда я пытаюсь получить свежий записанный файл из моего TMP каталога из в песочнице приложения вроде этого:

AVAsset *audioAsset2 = [AVAsset assetWithURL:[NSURL URLWithString:[NSTemporaryDirectory() stringByAppendingPathComponent:[@"speechRecord" stringByAppendingPathExtension:@"m4a"]]]]; 

он не работает слишком. Даже если я пытаюсь добавить видеофайл к ресурсу из песочницы, результат будет таким же. Я даже пробовал работать с AVURLAsset, но актив всегда пуст. Мне нужно, чтобы он смешивал два аудиофайла между собой, а затем объединил их с записанным видео. Если я смогу сделать это без AVAssets, и есть другой способ, я буду признателен, если вы скажете мне. Или может быть какая-то другая функция для этого?

ответ

2

Вы создаете второй URL-адрес для audioAsset2 с помощью селектора URLWithString. Ваш первый актив загружен правильно, потому что вы использовали селектор fileURLWithPath.

Если вы хотите загрузить файл по заданному URL-адресу, всегда создавайте объект NSURL с помощью селектора fileURLWithPath.

Так просто попробовать:

AVAsset *audioAsset2 = [AVAsset assetWithURL:[NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:[@"speechRecord" stringByAppendingPathExtension:@"m4a"]]]]; 

 Смежные вопросы

  • Нет связанных вопросов^_^