2016-01-13 3 views
0

Мне нужно использовать класс Android MediaPlayer из приложения libGDX, чтобы использовать его метод setNextMediaPlayer, чтобы я мог плавно переходить с одной дорожки на другую. Поэтому я хочу написать общий интерфейс MusicPlayer, который потребуется реализовать каждой платформе. В настольной версии просто не будет плавного перехода, но версия для Android будет. Проблема в том, что я хотел бы, чтобы этот интерфейс принимал FileHandle, который содержит музыкальный актив, но MediaPlayer принимает либо идентификатор ресурса, либо URL.Получить идентификатор или URL ресурса orroid из актива libGDX

Единственный другой вариант, который я могу использовать, вместо того, чтобы иметь интерфейс, принимает FileHandle, позволяет каждой платформе читать свои собственные файлы и либо найти способ получить идентификатор ресурса, либо URL-адрес из папки активов или поместить музыкальный файл в папке res/raw. Проблема заключается в том, что мне также нужно будет поместить их в папку с ресурсами, чтобы ее можно было прочитать на настольной версии (которая будет использовать музыкальный проигрыватель libGDX). Если есть способ сообщить libGDX прочитать из папки рабочего стола, чтобы музыкальный файл не скомпилировался в apk дважды.

Любая идея, как я могу это решить?

+0

Вы когда-нибудь получали эту работу? Я пытаюсь сделать то же самое сейчас сам (по той же самой причине, которую я ожидаю, скачок в петле аудио/музыке) –

ответ

0

libGDX использует активы, а не ресурсы, поэтому идентификатор ресурса не может использоваться.

Ниже вопрос отвечает другая часть:

Там нет «абсолютный путь к файлу существующего в папке активов». Содержимое папки вашего проекта assets/ упаковано в файл APK. Используйте объект AssetManager, чтобы получить InputStream на актив.

однако вы можете попробовать использовать следующие URI:

file:///android_asset/<asset_path>, где относительный путь в активах/директории вашего проекта.

How to get URI from an asset File?