Skip to content

Commit ffbda10

Browse files
author
Manoj Kumar
committed
Update README.md
1 parent d7df981 commit ffbda10

File tree

1 file changed

+190
-0
lines changed

1 file changed

+190
-0
lines changed

README.md

+190
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
# Media Module
2+
3+
## Description
4+
5+
Access android media store [Images, Videos, Thumbnails, Audio Files]
6+
7+
## Accessing the media Module
8+
9+
To access this module from JavaScript, you would do the following:
10+
11+
var media = require("com.mykingdom.media");
12+
13+
The media variable is a reference to the Module object.
14+
15+
## Reference
16+
17+
18+
### Functions
19+
20+
getItems(MediaOption);
21+
getImageThumbnail(ImageId, ThumbnailOption);
22+
getVideoThumbnail(VideoId, ThumbnailOption);
23+
getAlbumArt(AlbumId);
24+
25+
### Properties
26+
27+
MEDIA_TYPE_IMAGE,
28+
MEDIA_TYPE_VIDEO,
29+
MEDIA_TYPE_AUDIO,
30+
MEDIA_TYPE_ALL,
31+
THUMBANIL_MINI,
32+
THUMBANIL_MICRO
33+
34+
## Usage
35+
36+
Refer example\app.js
37+
38+
~~~~~~~~~~~~~~~
39+
40+
var masterWin = Ti.UI.createWindow({
41+
navBarHidden : false,
42+
backgroundColor : "#fff"
43+
});
44+
masterWin.open();
45+
46+
var media = require("com.mykingdom.media");
47+
48+
/*
49+
* MEDIA_TYPE_IMAGE - returns list of images
50+
* MEDIA_TYPE_VIDEO - returns list of videos
51+
* MEDIA_TYPE_AUDIO - returns list of audio files
52+
* MEDIA_TYPE_ALL - returns list of all media items
53+
*
54+
* To get only images and videos
55+
* media.getItems(media.MEDIA_TYPE_IMAGE, media.MEDIA_TYPE_VIDEO);
56+
*/
57+
var list = media.getItems(media.MEDIA_TYPE_ALL);
58+
Ti.API.info(JSON.stringify(list));
59+
/*
60+
* returned list will have 6 properties
61+
* images - list of images [Array]
62+
* imagesCount - total no. of images [Integer]
63+
* videos - list of videos [Array]
64+
* videosCount - total no. of videos [Integer]
65+
* audios - list of audio files [Array]
66+
* audiosCount - total no. of audio files [Integer]
67+
*/
68+
69+
var table = Ti.UI.createTableView();
70+
71+
/*
72+
* THUMBANIL_MINI = 96 x 96 JPEG
73+
* THUMBANIL_MICRO = 512 x 384 JPEG
74+
*/
75+
var imageSection = Ti.UI.createTableViewSection({
76+
headerTitle : "Images"
77+
});
78+
for (var i = 0; i < list.images.length; i++) {
79+
var row = Ti.UI.createTableViewRow({
80+
color : "#000",
81+
font : {
82+
fontSize : "20dp",
83+
fontWeight : "bold"
84+
},
85+
title : list.images[i].displayName,
86+
rowData : list.images[i]
87+
});
88+
row.addEventListener("click", function(e) {
89+
var window = Ti.UI.createWindow({
90+
navBarHidden : false,
91+
backgroundColor : "#fff",
92+
title : "Image Thumbnail"
93+
});
94+
window.add(Ti.UI.createImageView({
95+
image : media.getImageThumbnail(e.row.rowData.id, media.THUMBANIL_MINI)
96+
}));
97+
window.open();
98+
});
99+
imageSection.add(row);
100+
}
101+
102+
var videoSection = Ti.UI.createTableViewSection({
103+
headerTitle : "Videos"
104+
});
105+
for (var i = 0; i < list.videos.length; i++) {
106+
var row = Ti.UI.createTableViewRow({
107+
color : "#000",
108+
font : {
109+
fontSize : "20dp",
110+
fontWeight : "bold"
111+
},
112+
title : list.videos[i].displayName,
113+
rowData : list.videos[i]
114+
});
115+
row.addEventListener("click", function(e) {
116+
var window = Ti.UI.createWindow({
117+
navBarHidden : false,
118+
backgroundColor : "#fff",
119+
title : "Thumbnail & Images From Video"
120+
});
121+
var scrollview = Ti.UI.createScrollView({
122+
layout : "vertical"
123+
});
124+
scrollview.add(Ti.UI.createImageView({
125+
image : media.getVideoThumbnail(e.row.rowData.id, media.THUMBANIL_MINI)
126+
}));
127+
/*
128+
* getImageAtTime accepts videoPath & Time in millisecons
129+
* the following code gives the image at 5th sec (5000ms) & 10th sec (10000ms)
130+
* returns null if video file is in private access
131+
*/
132+
scrollview.add(Ti.UI.createImageView({
133+
image : media.getImageAtTime(e.row.rowData.data, 5000)
134+
}));
135+
scrollview.add(Ti.UI.createImageView({
136+
image : media.getImageAtTime(e.row.rowData.data, 10000)
137+
}));
138+
window.add(scrollview);
139+
window.open();
140+
});
141+
videoSection.add(row);
142+
}
143+
144+
var audioSection = Ti.UI.createTableViewSection({
145+
headerTitle : "Audio"
146+
});
147+
for (var i = 0; i < list.audios.length; i++) {
148+
var row = Ti.UI.createTableViewRow({
149+
color : "#000",
150+
font : {
151+
fontSize : "20dp",
152+
fontWeight : "bold"
153+
},
154+
title : list.audios[i].displayName,
155+
rowData : list.audios[i]
156+
});
157+
row.addEventListener("click", function(e) {
158+
var window = Ti.UI.createWindow({
159+
navBarHidden : false,
160+
backgroundColor : "#fff",
161+
title: "Album Art"
162+
});
163+
/*
164+
* Return null if there is no album art. You can use your own (a default) images
165+
*/
166+
var imageView = Ti.UI.createImageView({
167+
image : media.getAlbumArt(e.row.rowData.albumId)
168+
});
169+
window.add(imageView);
170+
window.open();
171+
});
172+
audioSection.add(row);
173+
}
174+
175+
var table = Ti.UI.createTableView({
176+
data : [imageSection, videoSection, audioSection],
177+
backgroundColor : "#fff",
178+
minRowHeight : "75dp"
179+
});
180+
masterWin.add(table);
181+
182+
~~~~~~~~~~~~~~~
183+
184+
## Author
185+
186+
Manoj Kumar. email : [email protected]
187+
188+
## License
189+
190+
Public

0 commit comments

Comments
 (0)