Перейти к содержанию
Fire Monkey от А до Я
  • 0

Проигрывание внутренних ресурсов приложения.


neohost

Вопрос

Здравствуйте. В смежной теме нашёл код подключения Res файла с ресурсами

var
  Stream: TResourceStream;
begin
  Stream:= TResourceStream.Create(hInstance, 'YouRes', RT_RCDATA);
  try
    //Работаем с потоком
  finally
    Stream.Free;
  end; 

Напрашивается два вопроса

  1. Что произойдёт при установке программы на андроид устройство? Ресурс останется внутри приложения, или распакуется?
  2. Как проиграть mp3/wav файл, упакованный в приложение таким образом без распаковки во внутреннюю память устройства?

Интересуюсь с целью понять, можно ли хранить ресурсы внутри программ не распаковывая, как это можно делать в windows программах.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Модераторы

Здравствуйте. В смежной теме нашёл код подключения Res файла с ресурсами

var
  Stream: TResourceStream;
begin
  Stream:= TResourceStream.Create(hInstance, 'YouRes', RT_RCDATA);
  try
    //Работаем с потоком
  finally
    Stream.Free;
  end; 

Напрашивается два вопроса

1) Что произойдёт при установке программы на андроид устройство? Ресурс останется внутри приложения, или распакуется?

2) Как проиграть mp3/wav файл, упакованный в приложение таким образом без распаковки во внутреннюю память устройства?

Интересуюсь с целью понять, можно ли хранить ресурсы внутри программ не распаковывая, как это можно делать в windows программах.

  1. Точно конечно не могу сказать, но если мы не можем обратиться к запакованному файлу (в ресурсы приложение) просто указав путь до файла, то напрашивается вывод, что все запакованные таким образом файлы (картинки, звуки) не распаковываются (автоматически).
  2. Судя по справке TMediaPlayer, я не вижу варианта проигрывания музыки прямо из ресурсов, т.е. перед проигрыванием придётся извлечь запись и вставить путь в TMediaPlayer.FileName.
Ссылка на комментарий
  • 0
  • Администраторы
  1. Этот способ, как и в Windows подразумевает встраивание ресурсов прямо в исполняемый файл приложения. Поэтому при установки на устройство, как вы понимаете, ресурс останется в исполняемом файле. Чтобы ресурс распаковался в виде файла, нужно использовать способ с Deployment Manager по этому руководству: Включение своих файлов в приложение
  2. Без распаковки отдельным файлом стандартными средствами никак. Если это и возможно, то только при помощи низкоуровневого кодирования с использованием Android API. Поскольку, судя по описанию используемого JMediaPlayer в Android API (MediaPlayer), он не умеет читать из кастомного потока. Если же вопрос встраивания медиа ресурсов в приложение важно для вас, то либо распаковка файла либо долгие и мучительные поиски решения. Поскольку так в большинстве случаев не делают. Поскольку сам формат андроид приложения подразумеваем хранение всех ресурсов отдельно.
Ссылка на комментарий
  • 0

Спасибо за ответы. Ув. admin, и Infocean. Задача проиграть ресурс непосредственно из приложения была поставлена не потому что мне так хочется. На медленных устройствах наблюдается значительная временная задержка, и подвисание устройства при подключении внешнего медиафайла. Предполагаю, что если медиафайл находится непосредственно внутри приложения, то такая проблема исчезнет, так как файл будет подгружаться в момент запуска приложения. Я не планировал крепить к проекту какие-то объёмные медиафайлы. Простой заменитель beep, и парочку таких же. Большая просьба не пропускать это сообщение мимо ушей, и по возможности поискать методики воспроизведения медиоданных непосредственно из потока. Возможно на сегодняшний день сторонними разработчиками были созданы решения. К сожалению таких решений конкретно мне найти не удалось.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...