This is the work around I did, hope anyone will find this helpful.
STEP 1: Drag and drop your video file into the `raw` folder under the `res` folder (If you don't have raw folder, create a new one).
add your video file here |
STEP 2: Create a new class called `VideoActivity.java` and paste the code below. Change the highlighted package name as appropriate.
package example.android.test; public class VideoActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_video); Bundle extras = getIntent().getExtras(); if (extras != null) { String videoName = extras.getString("EXTRA_VIDEO_NAME"); if (videoName.equals("hatseller")){ VideoView videoView = (VideoView) findViewById(R.id.videoView1); String path = "android.resource://" + getPackageName() + "/" + R.raw.video; videoView.setVideoPath(path); MediaController mediaController = new MediaController(this); mediaController.setAnchorView(videoView); videoView.setMediaController(mediaController); videoView.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { Intent intent = new Intent(VideoActivity.this,StoryTeller.class); intent.putExtra("FORWARD", "questions"); startActivity(intent); } }); videoView.start(); } } } }STEP 3: Create this layout `activity_video.xml` on res/layout folder.
activity_video.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <VideoView android:id="@+id/videoView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_gravity="center_horizontal" /> </LinearLayout>STEP 4: Insert VideoActivity into the AndroidManifest.xml. This should be defined inside the <application> tag. (Highlighted package name should be changed accordingly).
<activity android:name="example.android.test.VideoActivity" android:label="Video" android:screenOrientation="landscape"> </activity>
STEP 5: Modify your DroidGap class and include following functions;
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.init(); // Calling this is necessary to make this work appView.addJavascriptInterface(this, "MainActivity"); super.loadUrl("file:///android_asset/www/index.html"); public void customVideoFunction() { //Log.e("Custom Function Called", "Custom Function Called"); //define extra parameter String videoName="hatseller"; //start activity passing extras Intent intent = new Intent(this,VideoActivity.class); intent.putExtra("EXTRA_VIDEO_NAME", videoName); startActivity(intent); }
this is my droidGap class |
STEP 6: Change your HTML file as follows;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<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" type="text/css" href="css/jquery.mobile-1.4.2.css" />
<title>Hello World</title>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Anatomy of a Page</h1>
<a href="index.html" data-icon="home" data-iconpos="notext" data-direction="reverse">Home</a>
<a href="index.html" data-icon="search" data-iconpos="notext" data-rel="dialog" data-transition="fade">Search</a>
</div><!-- /header -->
<div data-role="content">
Loading video...
</div><!-- /content -->
<div id="deviceready" style="display:none">
<p class="event listening">Connecting to Device</p>
<p class="event received">Device is Ready</p>
</div>
<div data-role="footer">
<p>© 2014 tiriboy</p>
</div>
</div><!-- /page -->
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.4.2.min.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
app.initialize();
document.addEventListener("deviceready",onDeviceReady,false);
// Cordova is ready
//
function onDeviceReady () {
window.MainActivity.customVideoFunction();
}
</script>
</body>
</html>
Blogger Comment
Facebook Comment