Я хочу воспроизвести видео из приложения-виджета qt. Поскольку Qt не поддерживает Qmediaplayer в android, я не могу его использовать. Также по какой-то причине тип видеовыхода QML также не работает.Qt C++ Как играть в видео от собственного игрока Android
Таким образом, я хочу позвонить на родной плеер для Android, поэтому, когда пользователь нажимает кнопку, запускается приложение. Я создал эту часть.
Я нашел информацию из разных мест, но не могу понять, как собрать все вместе.
Java-код, который запускает приложение Chooser:
public class videoPlayer extends org.qtproject.qt5.android.bindings.QtActivity
{
private static videoPlayer instance;
videoPlayer() {
instance = this;
}
public void playVideo(String newVideoPath) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(newVideoPath));
intent.setDataAndType(Uri.parse(newVideoPath), "video/*");
// Verify that the intent will resolve to an activity
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
String title = "play video with";
// Create intent to show the chooser dialog
Intent chooser = Intent.createChooser(intent, title);
// Verify the original intent will resolve to at least one activity
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(chooser);
}
}
}
код C++, который должен вызвать выше метода Java
QAndroidJniObject videoUrl = QAndroidJniObject::fromString("file://path/to/video/1.mp4");
QAndroidJniObject::callStaticMethod<void>("path/to/java/src/videoPlayer",
"playVideo",
"(Ljava/lang/String;)V",
videoUrl.object<jstring>());
выше следует запустить Chooser, но в моем случае, это делает ... НИЧЕГО, нет ошибок, нет выбора приложений, нет предупреждений, нет видео, нет ничего.
Поэтому, как я могу вызвать приложение для выбора в android с qt C++ и передать URL-адрес видео?
заведите отладочный вывод в файл Java в функции playVideo (например, 'Log.Wtf («ЗДЕСЬ»);' Это поможет выяснить, где ошибка – Felix