Russian Qt Forum

Qt => Вопросы новичков => Тема начата: make от Март 06, 2011, 21:25



Название: Phonon и плеер
Отправлено: 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 принимает параметр - константу , насколько я понял.
что можно сделать?


Название: Re: Phonon и плеер
Отправлено: m_ax от Март 06, 2011, 21:51
Phonon::MediaSource(QString(argv[1]))
Ы?
Хотя проблема наверное не в этом..


Название: Re: Phonon и плеер
Отправлено: make от Март 06, 2011, 22:33
Phonon::MediaSource(QString(argv[1]))
Ы?
Хотя проблема наверное не в этом..

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


Название: Re: Phonon и плеер
Отправлено: Sancho_s_rancho от Март 07, 2011, 00:00
Phonon::MediaSource(QString(argv[1]))
Ы?
Хотя проблема наверное не в этом..

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

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


Название: Re: Phonon и плеер
Отправлено: make от Март 07, 2011, 00:22
Phonon::MediaSource(QString(argv[1]))
Ы?
Хотя проблема наверное не в этом..

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

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

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


Название: Re: Phonon и плеер
Отправлено: Авварон от Март 07, 2011, 01:24
а на линупсе так ваще не скомпилится


Название: Re: Phonon и плеер
Отправлено: make от Март 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


Название: Re: Phonon и плеер
Отправлено: Blackwanderer от Март 07, 2011, 12:01
QT += phonon


Название: Re: Phonon и плеер
Отправлено: Авварон от Март 07, 2011, 13:44
библиотека кроссплатформенная, а вот пути к файлам разные бывают, регистрозависимые и нет. я к чему - Phonon пишется с большой буквы. А в вин вам везет ибо она не различает регистр путей


Название: Re: Phonon и плеер
Отправлено: make от Март 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'

по-моему если взглянуть на вот это то можно понять что компиллер видет фонон но шото ему не нравится!


Название: Re: Phonon и плеер
Отправлено: Авварон от Март 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


греп с вами не согласен. компилер ничего о фононе не знает


Название: Re: Phonon и плеер
Отправлено: ufna от Март 07, 2011, 16:02
а Qt, которая "4.7.1" обычно, разве с собранным фононом идет? Судя по логу, то компилятор и не пытается линковать либу. Посмотри, phonon.lib у тебя есть?


Название: Re: Phonon и плеер
Отправлено: Blackwanderer от Март 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 файл.


Название: Re: Phonon и плеер
Отправлено: make от Март 07, 2011, 22:56
 
а Qt, которая "4.7.1" обычно, разве с собранным фононом идет? Судя по логу, то компилятор и не пытается линковать либу. Посмотри, phonon.lib у тебя есть?

с фононом у меня все нормально потому что если в пропишу в MediaSource путь и имя файла напрямую - все отлично компилится и музыка играет! а вот если не задавать имя файла как константу сразу - то компиллер и ругается!


Название: Re: Phonon и плеер
Отправлено: ufna от Март 07, 2011, 22:57
Создай этот проект, и выложи сюда архивом. Как-то ошибки сборки не вяжутся с проблемой.


Название: Re: Phonon и плеер
Отправлено: m_ax от Март 07, 2011, 23:23
У меня под линем всё скомпилилось и работает)
Косяк не в коде..
Ищите)) Кто ищет - вынужден блуждать)


Название: Re: Phonon и плеер
Отправлено: make от Март 08, 2011, 12:03
У меня под линем всё скомпилилось и работает)
Косяк не в коде..
Ищите)) Кто ищет - вынужден блуждать)


знаешь может прикол в компиллере? я использую самую свежую версию mingw с последней версией winapi
а qt требует чуть по старше! я шас попробую!

Создай этот проект, и выложи сюда архивом. Как-то ошибки сборки не вяжутся с проблемой.

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


Название: Re: Phonon и плеер
Отправлено: make от Март 08, 2011, 20:20
нет не работает... :(