{ "id": "115191", "key": "TIMOB-14123", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "16593", "description": "Release 4.0.0", "name": "Release 4.0.0", "archived": false, "released": true, "releaseDate": "2015-05-21" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-12-08T22:55:42.000+0000", "created": "2013-05-30T15:25:48.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "android", "exalture", "module_media", "notable", "qe-4.0.0", "qe-manualtest", "qe-testadded", "thumbnail", "video" ], "versions": [], "issuelinks": [ { "id": "47679", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "147748", "key": "TIMOB-18898", "fields": { "summary": "Android: Creating a video thumbnail with local media fails with error", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "updated": "2015-05-12T21:05:23.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "h2. Problem\r\n\r\nUnable to create a thumbnail of a video on Android using Titanium SDK 3.1.0.GA. Titanium.Media.VideoPlayer.thumbnailImageAtTime(Number time, Number option) and Titanium.Media.VideoPlayer.requestThumbnailImagesAtTimes(Number[] times, Number option, Callback callback) appear to be the only methods available to achieve this, but they are not supported for Android, only on iOS. Would like to see similar functionality to get a thumbnail from a video. It appears to be supported by the Android APIs per http://developer.android.com/reference/android/provider/MediaStore.Video.Thumbnails.html \r\n\r\nh2. Test case\r\n\r\nN/A - not currently supported\r\n\r\nh2. Logs\r\n\r\nN/A - not currently supported\r\n\r\nh2. Discussions\r\n\r\nQ/A: http://developer.appcelerator.com/question/152946/video-thumbnails-on-android\r\n", "attachment": [], "flagged": false, "summary": "Android: Add support for creating video thumbnails", "creator": { "name": "heather.boyer", "key": "heather.boyer", "displayName": "Heather", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Titanium Studio, build: 3.1.0.201304151600\r\nTitanium SDK: 3.1.0.GA\r\nAndroid 4.1.2", "closedSprints": [ { "id": 272, "state": "closed", "name": "2014 Sprint 25 SDK", "startDate": "2014-12-08T22:49:31.264Z", "endDate": "2014-12-22T01:00:00.000Z", "completeDate": "2015-01-05T18:18:28.523Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "254864", "author": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Heather,\n\nIn order to review a bug report we need a bit more information in order to reproduce the bug and confirm it is indeed a problem. Specifically a test case is needed which is a short demo code that can easily be pasted into an app.js to show the problem at hand. Also needed are the Android versions you have tested this problem with and the studio build of titanium. Please see here: https://wiki.appcelerator.org/display/guides/How+to+Submit+a+Bug+Report on how to create a successful bug report and I will be glad to review this ticket again when all pertinent information is provided.\n\nThank you,\nCarter", "updateAuthor": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-05-30T16:36:42.000+0000", "updated": "2013-05-30T16:36:42.000+0000" }, { "id": "255233", "author": { "name": "heather.boyer", "key": "heather.boyer", "displayName": "Heather", "active": true, "timeZone": "America/New_York" }, "body": "I was doing as instructed in http://developer.appcelerator.com/question/152946/video-thumbnails-on-android by Mauro Parra who indicated they were part of the Appcelerator team. If there is indeed a way to create a thumbnail of a video in Android using the Titanium framework, please do share. Titanium.Media.VideoPlayer.thumbnailImageAtTime(Number time, Number option) and Titanium.Media.VideoPlayer.requestThumbnailImagesAtTimes(Number[] times, Number option, Callback callback) appear to be the only methods available to achieve this, but they are not supported for Android, only on iOS.", "updateAuthor": { "name": "heather.boyer", "key": "heather.boyer", "displayName": "Heather", "active": true, "timeZone": "America/New_York" }, "created": "2013-05-31T19:10:01.000+0000", "updated": "2013-05-31T19:10:01.000+0000" }, { "id": "255235", "author": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Heather,\n\nWhen creating a bug report it is necessary that you follow the guidelines from https://wiki.appcelerator.org/display/guides/How+to+Submit+a+Bug+Report. What is missing is pertinent information that you have hinted at in your last comment. Describing the issue at hand, what you have experienced, the actual behavior that you would like seen and any further suggestions are all important for the team at engineering to ensure they understand your problem and can then cater to your specific request. If you can fill in the pertinent information in the description of the ticket such that engineering can then work on creating a solution for you it would be very helpful and I will be sure to then pass along your request to the team. \n\nThanks for your patience,\n\nCarter", "updateAuthor": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-05-31T19:17:52.000+0000", "updated": "2013-05-31T19:17:52.000+0000" }, { "id": "255236", "author": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "body": "In other words, if this is currently working on only iOS then this would be a new feature request ticket and you would have to describe the context of the new feature and what you would like out of it. I hope this clears things up a bit.\n\nAwaiting your reply,\nCarter", "updateAuthor": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-05-31T19:19:39.000+0000", "updated": "2013-05-31T19:19:39.000+0000" }, { "id": "256113", "author": { "name": "heather.boyer", "key": "heather.boyer", "displayName": "Heather", "active": true, "timeZone": "America/New_York" }, "body": "I updated the ticket.", "updateAuthor": { "name": "heather.boyer", "key": "heather.boyer", "displayName": "Heather", "active": true, "timeZone": "America/New_York" }, "created": "2013-06-05T14:24:56.000+0000", "updated": "2013-06-05T14:24:56.000+0000" }, { "id": "256220", "author": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks Heather, moving to Ti-Mobile. Engineering will take a look at your request.\n\nRegards,\nCarter", "updateAuthor": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-06-05T19:08:41.000+0000", "updated": "2013-06-05T19:08:41.000+0000" }, { "id": "285405", "author": { "name": "stereoket", "key": "stereoket", "displayName": "Ketan Majmudar", "active": true, "timeZone": "Europe/London" }, "body": "I agree that this level of parity is essential within the 3.x era of the SDK, also having multimedia with full parity should be a priority.\r\n\r\nThanks,\r\nKet", "updateAuthor": { "name": "stereoket", "key": "stereoket", "displayName": "Ketan Majmudar", "active": true, "timeZone": "Europe/London" }, "created": "2013-12-20T19:03:31.000+0000", "updated": "2013-12-20T19:03:31.000+0000" }, { "id": "290354", "author": { "name": "stereoket", "key": "stereoket", "displayName": "Ketan Majmudar", "active": true, "timeZone": "Europe/London" }, "body": "Any movement on this?", "updateAuthor": { "name": "stereoket", "key": "stereoket", "displayName": "Ketan Majmudar", "active": true, "timeZone": "Europe/London" }, "created": "2014-01-29T23:58:17.000+0000", "updated": "2014-01-29T23:58:17.000+0000" }, { "id": "333551", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/6393", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2014-11-25T03:40:09.000+0000", "updated": "2014-11-25T03:40:09.000+0000" }, { "id": "333553", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "Sample code for app.js:\r\n\r\n{code}\r\n\r\n// this sets the background color of the master UIView (when there are no windows/tab groups on it)\r\nTitanium.UI.setBackgroundColor('#000');\r\n \r\n// create base UI tab and root window\r\n//\r\nfunction newWindow(){\r\nvar vidWin = Titanium.UI.createWindow({\r\n title : 'Tab 1',\r\n backgroundColor : '#fff'\r\n});\r\n\r\nvar activeMovie = Titanium.Media.createVideoPlayer({\r\n top : 0,\r\n backgroundColor: 'red',\r\n height : 300,\r\n width : 300,\r\n //url : 'ten_sec_test.mp4'\r\n // url :'http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4'\r\n});\r\n \r\nactiveMovie.url = 'http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4';\r\n//activeMovie.url = 'ten_sec_test.mp4';\r\n\r\nvar scrollView = Ti.UI.createScrollView({\r\n contentWidth : 'auto',\r\n contentHeight : 'auto',\r\n layout : 'horizontal',\r\n scrollType : 'horizontal'\r\n});\r\n\r\n\r\nactiveMovie.requestThumbnailImagesAtTimes([0, 20, 59, 47, 22], Titanium.Media.VIDEO_TIME_OPTION_NEAREST_KEYFRAME, function(response) {\r\n Ti.API.info(\"Thumbnail callback called, success = \" + response.success);\r\n Ti.API.info(\"Thumbnail callback called, time = \" + response.time);\r\n Ti.API.info(\"Thumbnail callback called, code = \" + response.code);\r\n if(response.success) {\r\n var imgView = Titanium.UI.createImageView({\r\n image : response.image\r\n });\r\n scrollView.add(imgView);\r\n \r\n }\r\n });\r\nvar cancelbtn = Ti.UI.createButton({bottom:0,width:200,height:50,title:'Cancel Request'});\r\ncancelbtn.addEventListener('click',function(){\r\n\tTi.API.info(\"Thumbnail Cancelled requested\");\r\n\tactiveMovie.cancelAllThumbnailImageRequests();\r\n});\r\n\r\n\r\nvar closebtn = Ti.UI.createButton({bottom:60,width:200,height:50,title:'DONE'});\r\nclosebtn.addEventListener('click',function(){vidWin.close()});\r\n\r\nvidWin.add(scrollView);\r\nvidWin.add(closebtn);\r\nvidWin.add(cancelbtn);\r\nvidWin.open();\r\n}\r\n \r\nvar win=Ti.UI.createWindow();\r\nvar openButton = Ti.UI.createButton({width:200,height:50,title:'open'});\r\nopenButton.addEventListener('click',newWindow);\r\nwin.add(openButton);\r\nwin.open();\r\n\r\n\r\n{code}", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2014-11-25T03:48:52.000+0000", "updated": "2014-11-25T03:48:52.000+0000" }, { "id": "345172", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified fixed using:\r\n\r\nTitanium SDK 4.0.0.v20150303161012\r\nStudio 4.0.0.201502171827\r\nCLI 3.4.2-rc4\r\n\r\nThumbnails are generated properly.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-03-05T18:10:04.000+0000", "updated": "2015-03-05T18:10:04.000+0000" } ], "maxResults": 13, "total": 13, "startAt": 0 } } }