BITTE BEITRAG NR. 8 BEACHTEN - Alles was hiernach kommt ist nicht mehr die aktuelle Problemstellung
Moin zusammen,
vorweg: Auch, wenn Euch Cordova bzw. Appprogrammierung im Allgemeinen nichts sagt, bitte nicht gleich weg klicken, es geht um Javascript .
Ich programmiere gerade eine App für iOS und Android mit Cordova und nutze dafür verschiedene Plugins
- VideoCapture Plus (Kamera mit Overlay)
- Cordova Camera
- Cordova File
- Cordova File-Transfer
- Cordova Splashscreen
- Cordova inAppBrowser
- Cordova Statusbar
- jQuery
Jetzt habe ich also die VideoCapture Funktion die aufgerufen wird, wenn ein User die dafür zugehörige Seite öffnet ->
HTML:<div data-role="page" id="capture"> <script> $("#capture").on("pageshow" , function() { videoCapturePlusDemo(false,false,15); }); </script>
Die beiden "false" stehen je einmal für Highquality und Frontcamera, also es soll Lowquality sein und die hintere Kamera. 15 Entspricht 15Sekunden nach denen das Video automatisch stoppt.
Der nächste Schritt ist jetzt das Video nachdem es aufgenommen wurde anzeigen zu lassen, verkleinert (150x80)
HTML:<div id="video_container"></div>
funktioniert auch sehr gut, der "video_container" kommt hierher:
Code:function captureSuccess(mediaFiles) { var i, len; for (i = 0, len = mediaFiles.length; i < len; i++) { var mediaFile = mediaFiles[i]; mediaFile.getFormatData(getFormatDataSuccess, getFormatDataError); var vid = document.createElement('video'); vid.id = "theVideo"; vid.width = "120"; vid.height = "80"; vid.controls = "controls"; var source_vid = document.createElement('source'); source_vid.id = "theSource"; source_vid.src = mediaFile.fullPath; vid.appendChild(source_vid); document.getElementById('video_container').innerHTML = ''; document.getElementById('video_container').appendChild(vid); document.getElementById('video_meta_container2').innerHTML = parseInt(mediaFile.size / 1000) + 'KB ' + mediaFile.type; } }
Als nächstes wird ein Knopf gedrückt der das Video dann auf den Server laden soll. Die Funktion "uploadPhoto();" wird also per onclick aufgerufen und sieht so aus:
Code:function uploadPhoto(mediaURI) { alert(mediaFiles); var options = new FileUploadOptions(); options.fileKey="file"; options.fileName=mediaURI.substr(mediaURI.lastIndexOf('/')+1); options.mimeType="video/mov"; alert("lol2"); options.chunkedMode = false; options.headers = { Connection: "close" }; var params = {}; params.fullpath = mediaURI; params.name = options.fileName; options.params = params; alert("lol3"); var ft = new FileTransfer(); ft.upload(mediaURI, encodeURI("http://domain.com/upload.php"), win, fail, options); } function win(r) { console.log("Code = " + r.responseCode); console.log("Response = " + r.response); console.log("Sent = " + r.bytesSent); alert(r.response); } function fail(error) { alert("An error has occurred: Code = " + error.code); console.log("upload error source " + error.source); console.log("upload error target " + error.target); }
Also, dass war mein Standardcode. Ich habe versucht aus "vid" eine globale Variable zu machen. Das gleiche hab ich mit dem String "parseInt(mediaFile..." versucht und die Upload-Funktion (mediaURI) entsprechend abgeändert aber nichts hat geholfen, das script zum Laufen zu bekommen. Jedes mal hält das Upload-Script beim ersten alert an (alert (mediaFiles)) und macht nicht weiter.
Ich hoffe, jemand kann mir helfen
Zuletzt bearbeitet: