Dies ist eine alte Version des Dokuments!
audio/AndroidManifest.xml
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.audio" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.audio.MainActivity" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
audio/src/com/example/audio/MainActivity.java
package com.example.audio; import android.os.Bundle; import android.view.Menu; import org.apache.cordova.*; public class MainActivity extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
audio/assets/www/lib/css/meinecss.css
h4 { font-size:60px; } .schrift { font-size:45px; } .rundeEcken { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border-style: solid; border-width: 1pt; } .ausrichtung{ text-align: center; } #dauer{ text-align:center; margin-left: auto; margin-right: auto; }
audio/assets/www/index.html
<!DOCTYPE HTML> <html> <head> <title>Cordova</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <link rel="stylesheet" href="lib/css/meinecss.css" type="text/css"/> <script type="text/javascript" charset="utf-8" src="lib/js/cordova-2.5.0.js"></script> <script type="text/javascript" charset="utf-8" src="lib/js/meineskripte.js"></script> </head> <body> <h4 class="rundeEcken ausrichtung"> Mediaplayer </h4> <div class="rundeEcken ausrichtung schrift"> <button id="p"> Play </button> <button id="s"> Stop </button> <button id="pa"> Pause </button> </div> <div id="dauer" class="rundeEcken ausrichtung"> <span id="gesamtdauer"></span> <span id="pos"></span> </div> </body> </html>
audio/assets/www/lib/js/meineskripte.js
var mediaDat = null; var mediaTimer = null; var pos = 0; window.onload = function() { document.addEventListener("deviceready", function() { document.getElementById("p").addEventListener('click', function() { var src = "/android_asset/www/sounds/Kalt_und_Kaelter-STS.mp3"; //var src = "http://rjs.de/saturday.mp3"; mediaDat = new Media(src, function() { document.getElementById("gesamtdauer").innerHTML = ("Dauer: ### "); document.getElementById("pos").innerHTML = (" - 0 sek"); }, function(e) { document.getElementById("gesamtdauer").innerHTML = ("Dauer: ### "); document.getElementById("pos").innerHTML = (" - 0 sek"); }); mediaDat.play(); mediaDat.seekTo(pos * 1000); setTimeout(function() { document.getElementById("gesamtdauer").innerHTML = ("Dauer: "); if (mediaDat.getDuration() > -1) document.getElementById("gesamtdauer").innerHTML += (mediaDat.getDuration()); else document.getElementById("gesamtdauer").innerHTML += ("###"); }, 300); if (mediaTimer == null) { mediaTimer = setInterval(function() { mediaDat.getCurrentPosition(function(position) { if (position > -1) { pos = position; document.getElementById("pos").innerHTML = (" - " + (position) + " sek"); } }, function(e) { document.getElementById("pos").innerHTML = (" - ### sek"); }); }, 1000); } }); document.getElementById("s").addEventListener('click', function() { if (mediaDat != null) { mediaDat.stop(); mediaDat.release(); mediaTimer = null; mediaDat = null; pos = 0; } }); document.getElementById("pa").addEventListener('click', function() { if (mediaDat != null) { mediaDat.pause(); } }); }, false); }
In audio/res/xml/config.xml die Berechtigungen prüfen
In audio/assets/www/index.html die Cordova-Version prüfen