Russian Qt Forum
Апрель 20, 2024, 16:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Phonon и плеер  (Прочитано 7961 раз)
make
Гость
« : Март 06, 2011, 21:25 »

хочу для начала написать  консольный мп3 плеер на кьюти! Надо зделать так чтобы можно было задавать имя файла для проигрывания как аргумент возле имени проги в консоли! ну а вот моя проблема:
 
#include <QCoreApplication>
#include <phonon/AudioOutput>
#include <phonon/MediaObject>

int main(int argc, char *argv[])
{
   QCoreApplication app(argc, argv);
   
   Phonon::MediaObject obj;
   Phonon::AudioOutput out;

   obj.setCurrentSource(Phonon::MediaSource(argv[1])); //!!!!!!!!!!!!!!
   Phonon::createPath(&obj, &out);
   obj.play();
   
   return app.exec();
}


именно здесь проблема
 
obj.setCurrentSource(Phonon::MediaSource(argv[1])); //!!!!!!!!!!!!!!

потому что MediaSource принимает параметр - константу , насколько я понял.
что можно сделать?
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #1 : Март 06, 2011, 21:51 »

Phonon::MediaSource(QString(argv[1]))
Ы?
Хотя проблема наверное не в этом..
« Последнее редактирование: Март 06, 2011, 22:00 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
make
Гость
« Ответ #2 : Март 06, 2011, 22:33 »

Phonon::MediaSource(QString(argv[1]))
Ы?
Хотя проблема наверное не в этом..

наверное не в этом потому что все равно не компилится!
блин, ну помогите кто-нибудь!
Записан
Sancho_s_rancho
Гость
« Ответ #3 : Март 07, 2011, 00:00 »

Phonon::MediaSource(QString(argv[1]))
Ы?
Хотя проблема наверное не в этом..

наверное не в этом потому что все равно не компилится!
блин, ну помогите кто-нибудь!

Дорогая редакция, я оGUIваю.
Вот вам не лень вякую фигню постить тут, вместо того, чтобы прочесть сообщение компилятора. Ваша программа то хоть о QString что-нибудь знает? Хедеры-то все подключены?
Записан
make
Гость
« Ответ #4 : Март 07, 2011, 00:22 »

Phonon::MediaSource(QString(argv[1]))
Ы?
Хотя проблема наверное не в этом..

наверное не в этом потому что все равно не компилится!
блин, ну помогите кто-нибудь!

Дорогая редакция, я оGUIваю.
Вот вам не лень вякую фигню постить тут, вместо того, чтобы прочесть сообщение компилятора. Ваша программа то хоть о QString что-нибудь знает? Хедеры-то все подключены?

ты меня пожалуйста лохом не считай! хедеры само собой подключал!
если хочешь я тебе здесь вывешу то что мне пишет компиллер!
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #5 : Март 07, 2011, 01:24 »

а на линупсе так ваще не скомпилится
Записан
make
Гость
« Ответ #6 : Март 07, 2011, 11:22 »

а на линупсе так ваще не скомпилится

какая вобщем разница... это же кроссплатформенная библиотека... кроме того я юзаю mingw
и каждый раз получаю шо-то вроде этого:

PS C:\my\cbp> make
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/my/cbp'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_
HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\Qt\
4.7.1\include\QtCore" -I"..\..\Qt\4.7.1\include\QtGui" -I"..\..\Qt\4.7.1\include" -I"." -I"..\..\Qt\4.7.1\include\Active
Qt" -I"debug" -I"..\..\Qt\4.7.1\mkspecs\default" -o debug\main.o main.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows
-o debug\cbp.exe debug/main.o  -L"c:\Qt\4.7.1\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
debug/main.o: In function `main':
C:\my\cbp/main.cpp:12: undefined reference to `_imp___ZN6Phonon11MediaObjectC1EP7QObject'
C:\my\cbp/main.cpp:13: undefined reference to `_imp___ZN6Phonon11AudioOutputC1EP7QObject'
C:\my\cbp/main.cpp:17: undefined reference to `_imp___ZN6Phonon11MediaSourceC1ERK7QString'
C:\my\cbp/main.cpp:17: undefined reference to `_imp___ZN6Phonon11MediaObject16setCurrentSourceERKNS_11MediaSourceE'
C:\my\cbp/main.cpp:17: undefined reference to `_imp___ZN6Phonon11MediaSourceD1Ev'
C:\my\cbp/main.cpp:18: undefined reference to `_imp___ZN6Phonon10createPathEPNS_9MediaNodeES1_'
C:\my\cbp/main.cpp:18: undefined reference to `_imp___ZN6Phonon4PathD1Ev'
C:\my\cbp/main.cpp:19: undefined reference to `_imp___ZN6Phonon11MediaObject4playEv'
C:\my\cbp/main.cpp:12: undefined reference to `_imp___ZN6Phonon11MediaObjectD1Ev'
C:\my\cbp/main.cpp:17: undefined reference to `_imp___ZN6Phonon11MediaSourceD1Ev'
C:\my\cbp/main.cpp:12: undefined reference to `_imp___ZN6Phonon11MediaObjectD1Ev'
debug/main.o: In function `~AudioOutput':
C:\my\cbp/../../Qt/4.7.1/include/phonon/../../src/phonon/../3rdparty/phonon/phonon/audiooutput.h:51: undefined reference
 to `_imp___ZTVN6Phonon11AudioOutputE'
C:\my\cbp/../../Qt/4.7.1/include/phonon/../../src/phonon/../3rdparty/phonon/phonon/audiooutput.h:51: undefined reference
 to `_imp___ZTVN6Phonon11AudioOutputE'
C:\my\cbp/../../Qt/4.7.1/include/phonon/../../src/phonon/../3rdparty/phonon/phonon/audiooutput.h:51: undefined reference
 to `_imp___ZN6Phonon19AbstractAudioOutputD2Ev'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\cbp.exe] Error 1
mingw32-make[1]: Leaving directory `C:/my/cbp'
mingw32-make: *** [debug] Error 2
Записан
Blackwanderer
Гость
« Ответ #7 : Март 07, 2011, 12:01 »

QT += phonon
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #8 : Март 07, 2011, 13:44 »

библиотека кроссплатформенная, а вот пути к файлам разные бывают, регистрозависимые и нет. я к чему - Phonon пишется с большой буквы. А в вин вам везет ибо она не различает регистр путей
Записан
make
Гость
« Ответ #9 : Март 07, 2011, 15:38 »

QT += phonon

то есть по-вашему если новичок - то совсем тупой?
все это у меня давно уже написано! ну вот вы хоть сами попробуйте скомпилить а потом бесполезные предложения давйте!

C:\my\cbp/../../Qt/4.7.1/include/phonon/../../src/phonon/../3rdparty/phonon/phonon/audiooutput.h:51: undefined reference
 to `_imp___ZTVN6Phonon11AudioOutputE'
C:\my\cbp/../../Qt/4.7.1/include/phonon/../../src/phonon/../3rdparty/phonon/phonon/audiooutput.h:51: undefined reference
 to `_imp___ZTVN6Phonon11AudioOutputE'
C:\my\cbp/../../Qt/4.7.1/include/phonon/../../src/phonon/../3rdparty/phonon/phonon/audiooutput.h:51: undefined reference
 to `_imp___ZN6Phonon19AbstractAudioOutputD2Ev'

по-моему если взглянуть на вот это то можно понять что компиллер видет фонон но шото ему не нравится!
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #10 : Март 07, 2011, 15:45 »

Цитировать
MacBook-arch:~ arch$ grep phonon
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows
-o debug\cbp.exe debug/main.o  -L"c:\Qt\4.7.1\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4


греп с вами не согласен. компилер ничего о фононе не знает
Записан
ufna
Гость
« Ответ #11 : Март 07, 2011, 16:02 »

а Qt, которая "4.7.1" обычно, разве с собранным фононом идет? Судя по логу, то компилятор и не пытается линковать либу. Посмотри, phonon.lib у тебя есть?
Записан
Blackwanderer
Гость
« Ответ #12 : Март 07, 2011, 19:02 »

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

а потом бесполезные предложения давйте!

C:\my\cbp/../../Qt/4.7.1/include/phonon/../../src/phonon/../3rdparty/phonon/phonon/audiooutput.h:51: undefined reference
 to `_imp___ZTVN6Phonon11AudioOutputE'
C:\my\cbp/../../Qt/4.7.1/include/phonon/../../src/phonon/../3rdparty/phonon/phonon/audiooutput.h:51: undefined reference
 to `_imp___ZTVN6Phonon11AudioOutputE'
C:\my\cbp/../../Qt/4.7.1/include/phonon/../../src/phonon/../3rdparty/phonon/phonon/audiooutput.h:51: undefined reference
 to `_imp___ZN6Phonon19AbstractAudioOutputD2Ev'

по-моему если взглянуть на вот это то можно понять что компиллер видет фонон но шото ему не нравится!
Это что-то - ошибка при линковке. Подключая .h файлы phonon'а вы просто говорите компилятору, что где-то есть библиотека, в которой реализованы такие-то и такие-то классы. При сборе вашей программы в точках вызова функций phonon'а компилятор должен вставить код типа "загрузить в память такую-то .dll, выполнить функцию по такому-то адресу в этой dll". Эта информация ("загрузить в память такую-то .dll, выполнить функцию по такому-то адресу в этой dll") хранится в .a/.lib файле, вот его-то компилятор и не видит. Указывать его надо в .pro файле, который вы не привели, так что остается только гадать.
Строчка QT += phonon как раз таки инструктирует qmake о том, что надо сообщить компилятору о том, где находится нужный .lib файл.
Записан
make
Гость
« Ответ #13 : Март 07, 2011, 22:56 »

 
а Qt, которая "4.7.1" обычно, разве с собранным фононом идет? Судя по логу, то компилятор и не пытается линковать либу. Посмотри, phonon.lib у тебя есть?

с фононом у меня все нормально потому что если в пропишу в MediaSource путь и имя файла напрямую - все отлично компилится и музыка играет! а вот если не задавать имя файла как константу сразу - то компиллер и ругается!
Записан
ufna
Гость
« Ответ #14 : Март 07, 2011, 22:57 »

Создай этот проект, и выложи сюда архивом. Как-то ошибки сборки не вяжутся с проблемой.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 22.