Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/28: Рейтинг темы: голосов - 28, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 16.01.2011
Сообщений: 23

Получить название песни из файла

12.01.2012, 20:55. Показов 6095. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем есть плеер написанный с помощью DX.AudioVideoPlayback, нужно сделать плейлист, я делал на "listbox", но Вот в чем проблема, добавляются полные пути файлов, это не совсем эстетично, согласитесь, как сделать чтобы добавлялось лишь название файла (точнее трека ну или песни)???

C#
1
2
3
4
5
6
OpenFileDialog dialog = new OpenFileDialog();
dialog.Multiselect = true;
if (dialog.ShowDialog() == DialogResult.OK)
{
    listBox1.Items.AddRange(dialog.FileNames);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.01.2012, 20:55
Ответы с готовыми решениями:

Спарсить с радио-сайта название песни
Парсю сайт при помощи HtmlAgilityPack, пытаюсь вытянуть с интернет-радио-сайта название песни из листа "Избранное". Однако...

Как можно узнать из файла .m3u название песни и вывести это название в Label?
Я делаю свою программку для прослушивания радиостанций (хоть таких и полно - но мне хочется создать что-то свое). Как можно узнать из файла...

Как получить название песни и исполнителя на онлайн радиостанции?
Как получить название песни и исполнителя на онлайн радиостанции? В Интернете ответа на данный вопрос не нашёл Например у меня есть...

7
 Аватар для dev.nikor
29 / 30 / 3
Регистрация: 26.07.2010
Сообщений: 297
12.01.2012, 21:18
Может криво, но вроде работает
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
OpenFileDialog dialog=new OpenFileDialog();
            dialog.Multiselect = true;
            dialog.ShowDialog();
            string[] results = dialog.FileNames;
            var filenames = from result in results
                            let file =
                                result.Substring(result.LastIndexOf(@"\", System.StringComparison.Ordinal)+1,
                                                 result.LastIndexOf('.') - result.LastIndexOf(@"\", System.StringComparison.Ordinal)-1)
                            select file;
            foreach (var filename in filenames)
            {
                listBox1.Items.Add(filename);
            }
1
1 / 1 / 0
Регистрация: 16.01.2011
Сообщений: 23
12.01.2012, 21:24  [ТС]
darklagger, Работает))) Интересная задумка, я уже проверил, пасиб!!!
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
12.01.2012, 23:04
C#
1
2
3
4
5
string[] files = dialog.FileNames;
foreach (var file in files)
            {
                listBox1.Items.Add(Path.GetFileNameWithoutExtension(file));
            }
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
13.01.2012, 13:05
Лучший ответ Сообщение было отмечено _lunar_ как решение

Решение

вообще, если делать по уму, то нужно брать название из файла (о чём собственно и тема), а не самого файла. Файл может называться Track02.mp3, а на самом деле это какая-нить музыкальная группа, что отображается в более-менее нормальных плеерах (Aimp, WinAmp и др.). Если открыть mp3-файл в hex-редакторе и перейти в самый конец файла, то можно заметить отдельный сектор TAG, сразу после которого написана информация о треке и его исполнителе. Вот именно её и нужно выводить. Почитайте про IDv2/IDv3 Info, возможно есть более приемлемый способ, нежели использование и поиск через System.IO

Добавлено через 56 минут
собственно ничего сложно, покопался в интернете и нашёл пару библиотек
TagLib - http://download.banshee.fm/taglib-sharp/
UltraID3Lib - http://home.fuse.net/honnert/UltraID3Lib/
ничего сложного в их использовании нет - добавляйте в Ссылки, подключайте пространство имён и
C#
1
2
3
TagLib.File file = TagLib.File.Create(path);
label1.Text = "Title:  " + file.Tag.Title;
label2.Text = "Album:  " + file.Tag.Album;
C#
1
2
3
UltraID3 name = new UltraID3();
name.Read(path);
label1.Text = name.Artist;
1
1 / 1 / 0
Регистрация: 16.01.2011
Сообщений: 23
14.01.2012, 14:59  [ТС]
Очень полезная библиотека)

Добавлено через 2 часа 13 минут
_lunar_, А с их помощью можно загружать обложки, например в picturebox. Есть такие методы?
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
14.01.2012, 15:07
Лучший ответ Сообщение было отмечено _lunar_ как решение

Решение

sawwas, я особо в них не копался, так что точно сказать не могу. В TagLib есть класс Picture, поэксперементируйте с ним. С UltraID3Lib током не работал.
1
Заблокирован
14.01.2012, 15:11
Цитата Сообщение от sawwas Посмотреть сообщение
Очень полезная библиотека)
Это все можно просмотреть с помощью Shell32.dll
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
       static void Main(string[] args)
        {
            Shell32.Shell shell = new Shell32.ShellClass();
            //set the namespace to file path
            Shell32.Folder folder = shell.NameSpace(@"d:\");
            //get ahandle to the file
            Shell32.FolderItem folderItem = folder.ParseName("jenniway_geri vood_ronna .wav");
            //did we get a handle ?
            if (folderItem != null)
            {
                for (int i = 0; i < 225; ++i)
                {
                    try
                    {
                        string str = folder.GetDetailsOf(folderItem, i);
                        if (str != "")
                            Console.WriteLine( i.ToString() + "." + str);                       
 
                    }
                    catch { }
                }
            }
            Console.ReadKey();
 
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2012, 15:11
Помогаю со студенческими работами здесь

Как с помощью HTMLAgility получить название песни и артиста?
Предположим у меня есть такой код хтмл( сайт радио рекорд) &lt;!DOCTYPE html&gt; &lt;html class=&quot;bx-no-touch bx-no-retina bx-firefox...

Получить данные из аудио-потока (интернет-радио) - название песни, исполнитель
Всем привет, все никак найти не могу, каким образом выдернуть метаданные из потока, например, если открыть этот...

Создать класс с полями: название песни, исполнитель, год выхода
Ввести класс с полями 1) название песни 2)исполнитель 3) год выхода. Заполнить массив 5-ю объектами. Сделать поиск: 1) по исполнителю; 2)...

Получить исполнителя и название песни из интернет радио
Приветствую. Есть радиопоток. Оригинальный сайт передает данные о песне через флэш, но есть другой сайт, через которого играет это радио...

Получить название текущей песни из аудио потока
Всем привет, подскажите как можно получить название текущей песни, а может быть и плейлист весь из аудио потока? Например: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru