Доступ к аудио/метаданным видео с.NET

Сначала просто ответьте на комментарий в ответе accept.

«Что делает привязка? Что делать, если у меня есть интерфейс и реализация?»

blockquote>

Он просто читает bind( implementation ).to( contract ). Вы можете использовать альтернативную цепочку .in( scope ). Область по умолчанию PerLookup. Поэтому, если вам нужен синглтон, вы можете

bind( implementation ).to( contract ).in( Singleton.class );

Также имеется RequestScoped

Кроме того, вместо bind(Class).to(Class) вы также можете bind(Instance).to(Class), который будет быть автоматически одиночным.


Добавление к принятому ответу

Для тех, кто пытается выяснить, как зарегистрировать реализацию AbstractBinder в ваш web.xml (т. е. вы не используете ResourceConfig), похоже, связывание не будет обнаружено через сканирование пакетов, то есть

org.glassfish.jersey.servlet.ServletContainer

    jersey.config.server.provider.packages
    
        your.packages.to.scan
    

Или это либо


    jersey.config.server.provider.classnames
    
        com.foo.YourBinderImpl
    

Чтобы заставить его работать, мне пришлось реализовать Feature :

import javax.ws.rs.core.Feature;
import javax.ws.rs.core.FeatureContext;
import javax.ws.rs.ext.Provider;

@Provider
public class Hk2Feature implements Feature {

    @Override
    public boolean configure(FeatureContext context) {
        context.register(new AppBinder());
        return true;
    }
}

Аннотации @Provider должны позволять выбирать Feature путем сканирования пакета. Или без сканирования пакетов вы можете явно зарегистрировать Feature в web.xml


    Jersey Web Application
    org.glassfish.jersey.servlet.ServletContainer
    
        jersey.config.server.provider.classnames
        
            com.foo.Hk2Feature
        
    
    ...
    1


См. Также:

и для общей информации из документации Джерси


UPDATE

Заводы

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

public class MyServiceFactory implements Factory {
    @Context
    private HttpHeaders headers;

    @Override
    public MyService provide() {
        return new MyService(headers.getHeaderString("X-Header"));
    }

    @Override
    public void dispose(MyService service) { /* noop */ }
}

register(new AbstractBinder() {
    @Override
    public void configure() {
        bindFactory(MyServiceFactory.class).to(MyService.class)
                .in(RequestScoped.class);
    }
});

Затем вы можете ввести MyService в свой класс ресурсов.

10
задан Lance Fisher 12 August 2008 в 18:01
поделиться

7 ответов

Это файлы класса в качестве примера для различных языков, найденных в zip MediaInfo.dll

  • MediaInfoDLL.cs
  • MediaInfoDLL.def
  • MediaInfoDLL.h
  • MediaInfoDLL.java
  • MediaInfoDLL.jsl
  • MediaInfoDLL.pas
  • MediaInfoDLL.py
  • MediaInfoDLL.vb
  • MediaInfoDLL_Static.h

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

Свяжитесь со страницей загрузок (SourceForge)

MediaInfo_0.7.7.4_DLL_Win32.zip

4
ответ дан 3 December 2019 в 18:37
поделиться

Я использую MediaInfo со своими приложениями C#, дает Вам большую информацию о медиа-файлах.

6
ответ дан 3 December 2019 в 18:37
поделиться

Я смотрел на проект NTag также, который обрабатывает MP3/WMA/OGG. Я не знаю о единственной библиотеке, которая обрабатывает звуковые файлы и видеофайлы, таким образом, Вам, возможно, придется использовать некоторых.

3
ответ дан 3 December 2019 в 18:37
поделиться

Можно пользоваться свободной библиотекой.NET UltraID3Lib к чтению-записи метаданные MP3.

3
ответ дан 3 December 2019 в 18:37
поделиться

Я недавно использовал Lib Тега Sharp для записи некоторых приложений C# для чистки и поддержания моей музыкальной библиотеки. Я нашел библиотеку очень простой в использовании и хотя я только использовал ее для MP3, это, кажется, поддерживает диапазон другой музыки/форматов видео.

3
ответ дан 3 December 2019 в 18:37
поделиться

Похож на MediaInfo, только для чтения в этой точке, между прочим: http://sourceforge.net/forum/message.php?msg_id=4241318&abmode=1

Очень прохладный проект, все же. Это - забавное обнаружение обо всем этом интересном материале здесь на ТАК.

1
ответ дан 3 December 2019 в 18:37
поделиться

Я использовал взаимодействующий с COM для доступа к функциональности Детектора Медиа DirectShow.

Это действительно работает вполне прилично, но это - правильная боль в задней стороне. Необходимо знать партии о COM, win32 interop, и так далее.

Можно также использовать DirectShowNet, который должен обработать большую часть из этого для Вас, я просто не хотел тащить ту целую вещь вокруг, когда я только интересовался частью MediaDetector

1
ответ дан 3 December 2019 в 18:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: