Hi,
There is an issue in 5.1 when starting a video immediately on app startup.
Could you try to delay the loading and starting of the video, on mouse click
for example, and see if the problem is still there?
If you compile the wip/android branch, make sure to remove the 5.1 multimedia
plugin both on your host machine (<qtdir>/plugins/mediaservice) and on the
device ("Clean Libs on Device" button in QtCreator in the "Deploy
configurations panel"). The name has changed in 5.2 and the app might load the
wrong plugin. The plugin name in 5.1 is libandroidmediaplayer and in 5.2 it's
libqtmedia_android.
Yoann Lopes
Senior Software Engineer - Digia, Qt
Visit us on: http://qt.digia.com
On Jun 10, 2013, at 7:37 PM, Łukasz Korbel wrote:
I want to report problem with usage of QML MediaPlayer/VideoOutput on Android.
We used very simple qml file for test (working good on linux) with sample video
that plays correctly on android native player.
We don't put this message on interest list because we believe there are some
problems within implementation. Similar testing application was working with
build from 5.1 alpha release time (unfortunately not the one tagged as "alpha"
now and we could've not find working commit again).
We're using build from stable branch from 27-05-2013. Libs and application were
build for Android SDK API level 14. When running application on Android devices
proper windows shows up, we can hear audio of playback but no video at all
(black screen all the time, like frames were not drawn to surface texture).
Same effect observed with QtMultimedia libs built from wip/android branch.
I've attached project source. I've also attached output from logcat
(android.log). Two most suspicious lines from logs are:
W/System.err( 7783): java.lang.InstantiationException: can't instantiate class
org.qtproject.qt5.android.multimedia.QtAndroidMediaPlayer; no empty constructor
and...
E/BufferQueue( 7783): [unnamed-7783-0] dequeueBuffer: SurfaceTexture has been
abandoned!
E/SoftwareRenderer( 87): Surface::dequeueBuffer returned error -19
First we thought that this is because QtAndroidMediaPlayer starts before
SurfaceHolder is set but looks like the problem lies somewhere else. Is there
something wrong in implementation indeed or is just we doing something wrong
here?
Thanks in advance for help,
Łukasz Korbel
Senior Software Developer
Milo Solutions
(+48) 517539562
http://milosolutions.com
P.S.
For quick review key parts of source.
main.qml
----------------------------------------------------------------------------------------------------------------------
import QtQuick 2.0
import QtMultimedia 5.0
Rectangle {
id: player
width: 1024
height: 720
MediaPlayer {
id: mediaplayer
autoLoad: true
autoPlay: true
volume: 1.0
source: "file:///mnt/sdcard/Download/test.mp4"
}
VideoOutput {
id: videoOutput
width: parent.width
height: parent.height
anchors.centerIn: parent
fillMode: VideoOutput.PreserveAspectFit
source: mediaplayer
}
}
----------------------------------------------------------------------------------------------------------------------
AndroidManifest.xml
----------------------------------------------------------------------------------------------------------------------
<?xml version='1.0' encoding='utf-8'?>
<manifest android:versionCode="1"
package="org.qtproject.example.mediaplayer_test"
xmlns:android="http://schemas.android.com/apk/res/android"
android:sharedUserId="com.milosolutions.qt" android:versionName="1.0">
<application
android:name="org.qtproject.qt5.android.bindings.QtApplication"
android:label="@string/app_name">
<activity android:name="org.qtproject.qt5.android.bindings.QtActivity"
android:configChanges="orientation|locale|fontScale|keyboard|keyboardHidden"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<meta-data android:name="android.app.qt_sources_resource_id"
android:resource="@array/qt_sources"/>
<meta-data android:name="android.app.repository"
android:value="@string/repository"/>
<meta-data android:name="android.app.qt_libs_resource_id"
android:resource="@array/qt_libs"/>
<meta-data android:name="android.app.bundled_libs_resource_id"
android:resource="@array/bundled_libs"/>
<meta-data android:name="android.app.lib_name"
android:value="mediaplayer-test"/>
<!-- Run with local libs -->
<meta-data android:name="android.app.use_local_qt_libs"
android:value="1"/>
<meta-data android:name="android.app.libs_prefix"
android:value="/data/data/com.milosolutions.qt/app_data/"/>
<meta-data android:name="android.app.load_local_libs"
android:value="plugins/mediaservice/libandroidmediaplayer.so:lib/libQt5MultimediaQuick_p.so:lib/libQt5QuickParticles.so:plugins/platforms/android/libqtforandroidGL.so:"/>
<meta-data android:name="android.app.load_local_jars"
android:value="jar/QtAndroid.jar:jar/QtMultimedia.jar:"/>
<meta-data android:name="android.app.static_init_classes"
android:value="org.qtproject.qt5.android.multimedia.QtAndroidMediaPlayer:"/>
<!-- Messages maps -->
<meta-data android:name="android.app.ministro_not_found_msg"
android:value="@string/ministro_not_found_msg"/>
<meta-data android:name="android.app.ministro_needed_msg"
android:value="@string/ministro_needed_msg"/>
<meta-data android:name="android.app.fatal_error_msg"
android:value="@string/fatal_error_msg"/>
<!-- Messages maps -->
<!-- Splash screen -->
<meta-data android:name="android.app.splash_screen"
android:resource="@layout/splash"/>
<!-- Splash screen -->
</activity>
</application>
<supports-screens android:largeScreens="true" android:normalScreens="true"
android:anyDensity="true" android:smallScreens="true"/>
<uses-feature android:glEsVersion="0x00020000"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>
----------------------------------------------------------------------------------------------------------------------
libs.xml
----------------------------------------------------------------------------------------------------------------------
<?xml version='1.0' encoding='utf-8'?>
<resources>
<array name="qt_sources">
<item>https://download.qt-project.org/ministro/android/qt5/latest</item>
</array>
<string name="repository">default</string>
<array name="bundled_libs"/>
<array name="bundled_in_lib"/>
<array name="bundled_in_assets"/>
<array name="qt_libs">
<item>gnustl_shared</item>
<item>Qt5Core</item>
<item>Qt5Gui</item>
<item>Qt5Network</item>
<item>Qt5V8</item>
<item>Qt5Qml</item>
<item>Qt5Quick</item>
<item>Qt5Multimedia</item>
</array>
</resources>
----------------------------------------------------------------------------------------------------------------------
<android.log><source.tar.bz2>_______________________________________________
Development mailing list
[email protected]<mailto:[email protected]>
http://lists.qt-project.org/mailman/listinfo/development
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development