Это частичный ответ на ваш вопрос, так как я пытаюсь сделать нечто подобное, но с видео материалом.
Вы можете создать узел как тип контента, сохранить необходимый вам тип медиа (посмотрите код медиа для соответствующего mime / типа и функций, которые вам нужно вызвать). Вам, вероятно, потребуется установить поле мультимедийного ресурса и использовать селектор медиа-файла в типе поля.
Проблема, с которой я сталкиваюсь, заключается в том, чтобы браузер отображал ее в созданном узле, но сейчас я работаю над этим.
ОБНОВИТЬ
Получив немного дальше. После того, как вы сохранили файл мультимедиа (используя медиа-API), свяжите идентификатор файла с идентификатором узла, используя file_usage_add () . Вероятно, вам также нужно будет связать файл в поле, добавленном при создании поля медиаресурса.