The Qt Mobility 1.0.1 package is available!
As promised, this release finialises the Multimedia APIs. Additionally, as you would expect, the release also addresses a number of reported issues and we have also included some Symbian and Maemo 5 backend updates (please see the package release note for specifics).
But the main attraction in this release is the Multimedia.
Multimedia is, as many of you are aware, a little larger, and potentially a little more complex, set of APIs. The complexity arises not only from a feature level, but also from a need to address both high level application developer use cases, and low level/low latency APIs use cases.
To date, we had been addressing those needs separately, by providing low latency APIs in Qt and high level APIs in our Qt Mobility project delivered Qt solution packages.
What became apparent was the need to modularize QtMultimedia and simplify access for our developers. To that end, we have created our QtMultimediaKit, which offers developers a single module containing the Low Level APIs and High level APIs.
These Low Level/Low Latency APIs are exactly those previously found in Qt as QtMultimedia.dll.
The High Level APIs are those which we have matured through Qt Mobility.
Together they offer a powerful arsenal for our multimedia developers
The new QtMultimediaKit module will be available to both Qt and Qt Mobility development projects and is included for your usage in our 1.0.1 package.
Note: We now realize that introducing QtMultimedia in Qt 4.6 was a premature step, given our desires to make Qt more modular. These APIs in Qt’s QtMultimedia library will be deprecated and no longer maintained after Qt 4.7, given that the same APIs will be present in the Qt Multimedia module. Therefore, it is reccommended that the QtMultimediaKit module be used for new code. An associated blog on making Qt more modular was published earlier on our Qt 4.7 post.
Liciencing:
The 1.0.1 package is available both under our Commercial and also Open Source licensing agreements.
So, with this finalization of the Multimedia API, the package now comprises a total of 10 APIs which are considered FINAL with more soon to follow.
The list so far:
You can obtain these APIs in Qt Solutions and use as an add-on to Qt, or you can find them shipped within the Nokia Qt SDK.
We’re open for contribution:
We very much encourage and apprieciate your contributions for backends to other platforms, or indeed extensions to the APIs. So please keep the input coming. Help and guidelines are available here.
So whats next?
Several more APIs are currently being drafted and we plan to share those with you soon for your feedback.
*As a reminder, our whitepaper is a good starting point for those as yet unfamiliar with the new Qt APIs for mobile development.
Kind regards,
Gerard on behalf of the Qt Mobility team.
Possibly related posts:
25 comments
You now realize you are bad coders and your decision to ditch Phonon because in your words “was not extensible” made you have a whole module in Qt you now have to throw away because it sucks? Good work, next time you ditch something for not being extensible you better make something extensible yourselves
So from now on the QtMultimedia desktop support will be in the QtMobility source tarball rather than the Qt “Framework” one? Hopefully building QtMultimedia won’t require any unrelated QtMobility dependencies in order to build successfully.
It’d be useful to document what version(s) of the Framework each QtMobility/QtMultimedia release is compatible with? I assume the QtMobility/Multimedia 1.0.1 release is meant for use with Qt 4.7 ?
Quick update: The QtM 1.0.1 docs are now online, you can find the release notes that Gerard mentioned in his blog at http://doc.qt.nokia.com/qtmobility-1.0/qtmobility-known-issues.html
@Albert Instead of being so bitter, look how simple the code for playing files is in QtMobility. It just can’t get any simpler
player = new QMediaPlayer;
playlist = new QMediaPlaylist(player);
playlist->append(QUrl(“http://example.com/myclip1.mp4″));
playlist->append(QUrl(“http://example.com/myclip2.mp4″));
…
widget = new QVideoWidget(player);
widget->show();
playlist->setCurrentPosition(1);
player->play();
I think you guys did a Great job with high-level APIs in QtMobility.
That’s exactly what we need to start attracting mode developers from that fruit company.
more developers
The simplicity of AlexBravo’s example looks great! However, I want to play a video stored in a memory buffer, not a URL. Is this possible?
Nice.
Is this package included in the final Nokia Qt SDK 1.0 (or does that still have the 1.0.0 Mobility release?)
@Albert; nothing to do with the code, only where it lives and how it is distributed
@Daniel; it depends on the videos format and whether the native framework can play from arbitrary bytestreams, you can query format support and the capability at runtime.
“That’s exactly what we need to start attracting mode developers from that fruit company.”
Really dislike comment like above. There are many satisfied Qt developers that use the “fruit company’s” products to develop cross platform stuff. I hope the forum stays free of lame comment and OS alike wars…after all the Qt ideology has allways been Qt everywhere and for everyone.
Hi,
I have probleme with API location in OtMobility 1.0.1
If I buid my application with need locaton with qt-mobility-symbian-opensource-1.0.1 it don’t run if I install OtMobility 1.0.1 on my 5800xm
but if i install OtMobility 1.0.0 it run well!!
I have test the exemple satellitedialog, the same probleme like my application.
I use S60_5th_Edition_SDK and qt-mobility-symbian-opensource-1.0.1 and Qt Creator 2.0.0
Well, since my other comment seems to have disappeared, here’s the equivalent code of the example above, now using Phonon, which already ships with Qt:
m_player = new Phonon::VideoPlayer;
player->mediaObject()->enqueue(QUrl(“http://example.com/myclip1.mp4″));
player->mediaObject()->enqueue(QUrl(“http://example.com/myclip2.mp4″));
player->videoWidget()->show();
player->mediaObject()->play();
Phonon also supports playback from memory (this is used through the Phonon platform plugin to support reading from “virtual filesystems” for playing from inside archive files or over IMAP, for example), and is also receiving new low-level APIs this summer, thanks to Google Summer of Code.
What about the Symbian Python? The QT toolset should be able to develop and deploy Python apps too IMHO!
Hi guys,
We have discovered a formatting error in our documentation. (QDoc related and doc links arent working).
The problem has been fixed in our online docs [http://doc.qt.nokia.com/qtmobility-1.0/index.html] and a documentation patch will also be made available tomorrow.
We will provide an update link here asap.
Apologies for any inconvenience.
kind regards,
Gerard.
It would have been nice if the QContactDetail class and those that inherit from it had operators defined for QDataStream > I would imagine anyone using these classes may also want to sync or send (retrieve) this information to (from) a server via a socket. In wanting to do such one must Inherit from these classes just to create these operators a real big pain if you ask me.
By having this a Qt::Solution and not a real module of Qt (like XML, Network, etc) I see there no way to ever get support for things like QVariant, other then using a void *. Having QVariant support would have come in handy for doing all kinds of things with QAbstractViews. Built in mime data support would have also been a nice programming feature.
Seems like a lot of these classes just organize data while offering very little capability. I mean anyone can write a message class with somthing like
struct messageclass {
int id;
str subject;
str body;
}
Your classes don’t seem to go past this. Perhaps they will in the future. I’d like to see something like an EmailServer class that does all the work of connecting to a pop server for me and allows me to send receive email in a few lines of code.
And as this is for Mobil applications where is the class that stores things like server url, user name and encrypted password while also allowing connection to such services.
Not to be harsh but I just see most of the easy stuff here. In the future I want to see a QT solution demo where an address fields is tied to a geoloaction that gets loaded into a Google (Ovi) map display, and I can call or get directions to such a place all within a hundred lines of code. I mean this is were the other platforms such as Andriod and WebOS are now.
I look forward to the next release of your Mobility solution. And I must add that I have barely touched the surface of your Mobility API, so perhaps a lot of my comments are just plain wrong. Apologies if they are. Anyway this release is a good first step.
@HAF: I can confirm that there is a problem. We are investigating the problem now. (For details see: QTMOBILITY-360)
@DavidB “I’d like to see something like an EmailServer class that does all the work of connecting to a pop server for me and allows me to send receive email in a few lines of code.”
Please see the QMessageService class e.g. the send and retrieve functions.
What’s happening with Phonon? Why has Qt given up?
When Qt Camera API will be available for Nokia’s Symbian?
Does anyone has a camera-based project build with:
Qt 4.6
S60 5th Edition SDK 1.0
I’m desperate for integrating camera capture inside Qt!
@JubiluM > stays free of lame comment and OS alike wars
You are right Jubilu, we don’t want any wars. We do want the ability to develop code that will work on several platform, which I though you can’t really do when you develop Objective-C code.
@AlexBravo:
“You are right Jubilu, we don’t want any wars. We do want the ability to develop code that will work on several platform, which I though you can’t really do when you develop Objective-C code.”
And you thought we didn’t know that? Well that’s no the only platform-tied “language” or gui-api in the world…you could go on with the list, if you had nothing else to do. That’s not the point…point is that no one here really doesn’t want this forum to turn into fanboy battlefield. Ok with you?
@JubiluM I see how my comment sounded fanboyish, even though I didn’t intend it that way.
I’ll try to stay away from comparisons. It’s sure hard to do though.
@AlexBravo: I’m sure you can if you try really, really hard
! The truth is that we all have opinions on just about anything, but as we’re on multi(platform/languages) let’s respect ‘em all, shall we
!
*All please take a few moments to read the following post:
http://labs.trolltech.com/blogs/2010/07/01/mobility-api-mandatory-update-for-symbian-apps-created-using-beta-nokia-qt-sdk/
@AlexBravo: Objective-C *is* portable, actually
GCC and Clang can compile Objective-C code on many platforms, and projects such as GNUstep and Cocotron make it possible to use Cocoa on systems other than Mac OS X.
Comments on this entry are closed.