Android 存储MediaPlayer的内容(QML/Qt)
我正在使用Android 存储MediaPlayer的内容(QML/Qt),android,c++,qt,qml,Android,C++,Qt,Qml,我正在使用Qt开发一个电话应用程序。在我的整个应用程序中,我使用了 Qt+C++类,但在某个时候,我在应用程序中必须使用 QtQML类型为电话相机功能< /强>,现在我可以在 MIDApPoovis/COD>上显示相机的内容。我想知道是否可以将此内容以.mp4文件或任何其他格式保存在手机存储器中 下面是我在MediaPlayer上显示此内容的一段代码: import QtQuick 2.0 import QtMultimedia 5.0 Item { id: videoPreview
Qt
开发一个电话应用程序。在我的整个应用程序中,我使用了.mp4
文件或任何其他格式保存在手机存储器中
下面是我在MediaPlayer
上显示此内容的一段代码:
import QtQuick 2.0
import QtMultimedia 5.0
Item {
id: videoPreview
property alias source : player.source
signal closed
MediaPlayer {
id: player
autoPlay: true
onStatusChanged: {
if (status == MediaPlayer.EndOfMedia)
videoPreview.closed();
}
}
VideoOutput {
source: player
anchors.fill : parent
}
MouseArea {
anchors.fill: parent
onClicked: {
videoPreview.closed();
}
}
}
我非常感谢任何提示或帮助,因为我是QML类型的初学者
这是我的主要QML文件
import QtQuick 2.0
import QtMultimedia 5.4
Rectangle {
id : cameraUI
width: 640
height: 480
color: "black"
state: "VideoCapture"
states: [
State {
name: "VideoCapture"
StateChangeScript {
script: {
camera.position = Camera.FrontFace
camera.captureMode = Camera.CaptureVideo
camera.start()
}
}
},
State {
name: "VideoPreview"
StateChangeScript {
script: {
camera.stop()
}
}
}
]
Camera {
id: camera
captureMode: Camera.CaptureVideo
videoRecorder {
resolution: "640x480"
frameRate: 30
}
}
VideoPreview {
id : videoPreview
anchors.fill : parent
onClosed: cameraUI.state = "VideoCapture"
visible: cameraUI.state == "VideoPreview"
focus: visible
//don't load recorded video if preview is invisible
source: visible ? camera.videoRecorder.actualLocation : ""
}
VideoOutput {
id: viewfinder
visible: cameraUI.state == "VideoCapture"
x: 0
y: 0
// width: parent.width
width: parent.width - stillControls.buttonsPanelWidth
height: parent.height
source: camera
autoOrientation: true
}
VideoCaptureControls {
id: videoControls
anchors.fill: parent
camera: camera
visible: cameraUI.state == "VideoCapture"
onPreviewSelected: cameraUI.state = "VideoPreview"
}
}
这样的办法应该行得通。有关更多属性,请查看文档
Camera
{
id: camera
captureMode: Camera.CaptureVideo
videoRecorder.muted: true // set any property of recording.
}
VideoOutput
{
source: camera
width: parent.width*0.8
height: parent.height*0.8
autoOrientation: true
anchors.centerIn: parent
MouseArea
{
property var myInt:0
anchors.fill: parent
onClicked:
{
camera.searchAndLock()
camera.videoRecorder.record()
if( myInt > 1 )
{
camera.videoRecorder.stop()
console.log(camera.videoRecorder.outputLocation)
}
myInt=myInt+1
}
}
}
非常感谢你的回答。我需要为此创建另一个QML文件吗?这取决于您想做什么。把上面的代码复制到任何地方都可以。如果它解决了您的问题,您能将答案标记为已接受吗?我已将其添加到我的主QML文件中,我已在其中定义了摄像头和视频输出,但它似乎没有存储视频。当它第一次点击屏幕时,它开始录制。请你解释一下,这样我就可以正确修改代码了@Muhammet Ali AsanI将在我的问题部分向您提供我的主要QML文件,因为它太长,无法作为评论发布。请参考上述代码。我从控制台检索到这个libFastPong.so:qml:file:///data/user/0/org.qtproject.example.FastPong/files/VID_00000048.mp4 但我找不到这样的文件。你知道问题是什么吗?