C # UWP: Справка Создание приложения: Пользователь загружает MP3-файл для сохранения и воспроизведения из списка - PullRequest
0 голосов
/ 03 сентября 2018

В настоящее время я создаю приложение UWP в Visual Studio с использованием C # и XAML, которое имитирует музыкальную библиотеку.

Приложение позволит пользователю загружать файлы MP3 на одной странице, а затем пользователь сможет перейти на другую страницу, чтобы воспроизвести эту музыку из списка, упорядоченного по названию, исполнителю и названию альбома. Поэтому мне нужно сослаться на метаданные файла MP3, чтобы иметь возможность поместить песни в список под их соответствующими названиями, именами исполнителей и названиями альбомов.

Может ли кто-нибудь помочь мне с сохранением музыки, загруженной пользователем? Также, как ссылаться на метаданные из файла MP3, чтобы связать заголовок, название альбома и исполнителя с заголовками списка?

Извиняюсь, если это уже было решено в предыдущих вопросах по stackoverflow. Я искал несколько поисков, но не нашел ничего подходящего.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Хорошо, похоже, вы задаете здесь не один вопрос, поэтому я постараюсь ответить на каждый из них как можно лучше.

1 - Приложение должно иметь доступ к файлам MP3. Если вы используете OpenFilePicker для «загрузки» файлов в приложение, тогда приложение может сохранять ссылку на StorageFile, которая будет действительна до тех пор, пока приложение открыто. Если вы хотите, чтобы ваше приложение получало доступ к тем же файлам после того, как оно было закрыто и открыто снова, тогда вам нужно использовать FutureAccessList , но будьте осторожны, так как в этом списке не более 1000 элементов. Если вы ожидаете, что вашему приложению потребуется доступ к более чем 1000 файлам, посмотрите вместо этого на хранение, на которое ссылается папка, или разрешите приложению доступ к пользовательской MusicLibrary

2- Чтобы прочитать метаданные файла MP3, вам необходимо использовать библиотеку, совместимую с платформой UWP. Для этого предпочтительным является TagLibSharp-Portable . Приведенная ссылка содержит пример того, как прочитать теги из файла.

Надеюсь, это поможет вам правильно реализовать свои функции.

0 голосов
/ 04 сентября 2018

Мне кажется, я сталкивался с этим вопросом раньше, когда помогал другу, для чтения / записи метаданных аудио / видео, читал больше о TagLib .

string fileName = @"D:\Personal\MyMusic\Acoustic Covers\Song1.mp3";
TagLib.File file = TagLib.File.Create(fileName);
Console.WriteLine(file.Tag.Title);
Console.WriteLine(file.Tag.Album);

Затем для сохранения данных песни в дБ следует хранить их в байтах.

using (FileStream fs = new FileStream(fileName, FileMode.Open))
{
    using (BinaryReader br = new BinaryReader(fs))
    {
        byte[] data = br.ReadBytes((int)fs.Length);

        // store to db.
    }
}

Я не тестировал код, я только воображал, когда писал его, но это должно помочь вам начать ваш проект.

...