{ "id": "142109", "key": "TIMOB-18372", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "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": [], "resolution": { "id": "11", "description": "Is not a bug in our product", "name": "Not Our Bug" }, "resolutiondate": "2015-01-13T18:55:51.000+0000", "created": "2014-12-29T13:16:14.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [ "TCSupportTriage", "android", "hls", "lollipop", "player" ], "versions": [ { "id": "16676", "description": "Release 3.4.1", "name": "Release 3.4.1", "archived": false, "released": true, "releaseDate": "2014-11-14" }, { "id": "16704", "description": "Release 3.5.0", "name": "Release 3.5.0", "archived": false, "released": true, "releaseDate": "2015-01-13" } ], "issuelinks": [ { "id": "44453", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "140610", "key": "TIMOB-18888", "fields": { "summary": "Android Lollipop problem cache with MediaPlayer", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2015-03-24T08:58:04.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": "h4. Problem Description\r\nHLS video link does not work on Android Lollipop. And it’s also a bug on native android.\r\nhttps://code.google.com/p/android-developer-preview/issues/detail?id=1820\r\n\r\n\r\nh4. Steps to reproduce \r\n1. Create a new mobile project (classic)\r\n2. Paste this code to app.js\r\n{code:title=app.js}\r\nvar vidWin = Titanium.UI.createWindow({\r\n\ttitle : 'Video View Demo',\r\n\tbackgroundColor : '#fff'\r\n});\r\n\r\nvar videoPlayer = Titanium.Media.createVideoPlayer({\r\n\ttop : 2,\r\n\tautoplay : true,\r\n\tbackgroundColor : 'blue',\r\n\theight : 300,\r\n\twidth : 300,\r\n\tmediaControlStyle : Titanium.Media.VIDEO_CONTROL_DEFAULT,\r\n\tscalingMode : Titanium.Media.VIDEO_SCALING_ASPECT_FIT\r\n});\r\n\r\nvideoPlayer.url = 'http://www.nasa.gov/multimedia/nasatv/NTV-Public-IPS.m3u8';\r\nvidWin.add(videoPlayer);\r\nvidWin.open(); \r\n{code}\r\n3. Open the app in a device with Android 5.x\r\n\r\nh4. Extra information\r\n\r\nTitanium.Media.VideoPlayer does not stream HLS (Live Stream) on Lollipop.\r\nOn KitKat works great. \r\nfor example - Nasa TV:\r\nhttp://www.nasa.gov/multimedia/nasatv/NTV-Public-IPS.m3u8\r\n\r\nsetting this url in the url property of the VideoPlayer Object returns the current log:\r\n\r\n12-29 15:13:05.148: D/MediaPlayer(19906): Couldn't open file on client side, trying server side\r\n12-29 15:13:05.157: I/LiveSession(26737): onConnect http://\r\n12-29 15:13:05.165: E/LiveSession(26737): unable to fetch master playlist http://.\r\n12-29 15:13:05.167: E/MediaPlayer(19906): error (1, -1004)\r\n12-29 15:13:05.284: D/HTTPClient(19906): The persistent handle is disposed.\r\n12-29 15:13:05.291: E/MediaPlayer(19906): Error (1,-1004)\r\n12-29 15:13:05.291: D/TiVideoView8(19906): (main) [364705,552345] Error: 1,-1004\r\n12-29 15:13:05.337: D/NuPlayerDriver(26737): reset(0xb50ce880)\r\n12-29 15:13:05.337: D/NuPlayerDriver(26737): notifyResetComplete(0xb50ce880)\r\n12-29 15:13:05.338: D/NuPlayerDriver(26737): reset(0xb50ce880)\r\n12-29 15:13:05.340: D/MediaPlayer(19906): Couldn't open file on client side, trying server side\r\n12-29 15:13:05.345: I/LiveSession(26737): onConnect http://\r\n12-29 15:13:05.353: E/LiveSession(26737): unable to fetch master playlist http://.\r\n12-29 15:13:05.354: E/MediaPlayer(19906): error (1, -1004)\r\n12-29 15:13:05.385: E/MediaPlayer(19906): Error (1,-1004)\r\n12-29 15:13:05.385: D/TiVideoView8(19906): (main) [94,552439] Error: 1,-1004\r\n12-29 15:13:05.405: D/HTTPClient(19906): The persistent handle is disposed.\r\n12-29 15:13:06.705: D/audio_hw_primary(26737): disable_audio_route: reset and update mixer path: low-latency-playback\r\n12-29 15:13:06.705: D/audio_hw_primary(26737): disable_snd_device: snd_device(2: speaker)\r\n\r\n\r\n", "attachment": [], "flagged": false, "summary": "Live Stream(HLS) not working in Android 5.0/5.01(Lollipop)", "creator": { "name": "eyal.solodki@gmail.com", "key": "eyal.solodki@gmail.com", "displayName": "Eyal Solodki", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "eyal.solodki@gmail.com", "key": "eyal.solodki@gmail.com", "displayName": "Eyal Solodki", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Nexus 5 Android 5.0/5.01 (Lollipop)\r\nTitanium SDK: 3.4.1\r\nTitanium CLI: 3.4.1\r\nAndroid SDK: 5.0\r\nOS X Version: 10.9.5,\r\nAppcelerator Studio: 3.4.1\r\n", "comment": { "comments": [ { "id": "337690", "author": { "name": "eyal.solodki@gmail.com", "key": "eyal.solodki@gmail.com", "displayName": "Eyal Solodki", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi,\r\n\r\nWhen do you think it's possible to fix this bug?\r\nIt's a Critical Bug that happens only on Android Lollipop.\r\n\r\nWe are a mobile development company and I'm using Appcelerator for over than 2 years and I'm very happy with the platform - but this kind of bug never happend to me - We are stuck and cannot release a version for the client.\r\n\r\nRegards,\r\n\r\nEyal Solodki,\r\nDeveloper - NGSoft Israel\r\neyal.solodki@ngsoft.com\r\n\r\nngsoft.com", "updateAuthor": { "name": "eyal.solodki@gmail.com", "key": "eyal.solodki@gmail.com", "displayName": "Eyal Solodki", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-12-31T08:14:02.000+0000", "updated": "2014-12-31T08:14:02.000+0000" }, { "id": "337887", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I am curious if this is an Android bug. See https://code.google.com/p/android-developer-preview/issues/detail?id=1820 and (possibly) https://code.google.com/p/android/issues/detail?id=72875.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-01-05T19:59:59.000+0000", "updated": "2015-01-05T19:59:59.000+0000" }, { "id": "337978", "author": { "name": "morahman", "key": "morahman", "displayName": "Motiur Rahman", "active": true, "timeZone": "Asia/Dhaka" }, "body": "Hello,\r\n\r\nWe have tested this issue. And HLS video link does not work on Android Lollipop. And it’s also a bug on native android.\r\nhttps://code.google.com/p/android-developer-preview/issues/detail?id=1820\r\n*Testing Environment:*\r\nTitanium SDK: 3.4.1\r\nTitanium CLI: 3.4.1\r\nAndroid SDK: 5.0\r\nOS X Version: 10.9.5,\r\nAppcelerator Studio: 3.4.1\r\n\r\n\r\n*Test Case*\r\n\r\n{code:title=app.js}\r\nvar vidWin = Titanium.UI.createWindow({\r\n\ttitle : 'Video View Demo',\r\n\tbackgroundColor : '#fff'\r\n});\r\n\r\nvar videoPlayer = Titanium.Media.createVideoPlayer({\r\n\ttop : 2,\r\n\tautoplay : true,\r\n\tbackgroundColor : 'blue',\r\n\theight : 300,\r\n\twidth : 300,\r\n\tmediaControlStyle : Titanium.Media.VIDEO_CONTROL_DEFAULT,\r\n\tscalingMode : Titanium.Media.VIDEO_SCALING_ASPECT_FIT\r\n});\r\n\r\nvideoPlayer.url = 'http://www.nasa.gov/multimedia/nasatv/NTV-Public-IPS.m3u8';\r\nvidWin.add(videoPlayer);\r\nvidWin.open(); \r\n{code}\r\n\r\nThanks.", "updateAuthor": { "name": "mpmiranda", "key": "mpmiranda", "displayName": "Mauro Parra-Miranda", "active": true, "timeZone": "America/Mexico_City" }, "created": "2015-01-06T11:34:42.000+0000", "updated": "2015-01-08T19:40:13.000+0000" }, { "id": "338910", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "If this is a bug in native Android, why not just resolve it as \"Not our Bug\"?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-01-13T18:50:18.000+0000", "updated": "2015-01-13T18:50:18.000+0000" }, { "id": "338912", "author": { "name": "mpmiranda", "key": "mpmiranda", "displayName": "Mauro Parra-Miranda", "active": true, "timeZone": "America/Mexico_City" }, "body": "This is a native bug: \r\n\r\nhttps://code.google.com/p/android-developer-preview/issues/detail?id=1820\r\n\r\nOnce Android fixes this, it will reflect into the platform. ", "updateAuthor": { "name": "mpmiranda", "key": "mpmiranda", "displayName": "Mauro Parra-Miranda", "active": true, "timeZone": "America/Mexico_City" }, "created": "2015-01-13T18:55:51.000+0000", "updated": "2015-01-13T18:55:51.000+0000" }, { "id": "347119", "author": { "name": "wiltonkkw", "key": "wiltonkkw", "displayName": "Wilton Kwok", "active": true, "timeZone": "Asia/Shanghai" }, "body": "I tried to use the same url (http://www.nasa.gov/multimedia/nasatv/NTV-Public-IPS.m3u8) on the web browser. It play perfectly. But when it is placed in the App (no matter VideoPlayer or WebView). It has the following log:\r\n\r\n{quote}\r\n[INFO] : VIDEO_LOAD_STATE_UNKNOWN\r\n[WARN] : Parcel: **** enforceInterface() expected '' but read 'android.media.IMediaPlayer'\r\n[INFO] : VIDEO_LOAD_STATE_UNKNOWN\r\n[ERROR] : MediaHTTPConnection: unknown exception java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.startsWith(java.lang.String)' on a null object reference\r\n[WARN] : Parcel: **** enforceInterface() expected '' but read 'android.media.IMediaPlayer'\r\n[WARN] : MediaPlayer: info/warning (701, 0)\r\n[ERROR] : MediaHTTPConnection: unknown exception java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.startsWith(java.lang.String)' on a null object reference\r\n[WARN] : MediaPlayer: info/warning (1, 1936876366)\r\n[ERROR] : MediaPlayer: error (1, -1004)\r\n[ERROR] : MediaPlayer: Error (1,-1004)\r\n[INFO] : VIDEO_PLAYBACK_STATE_INTERRUPTED\r\n[INFO] : VIDEO_LOAD_STATE_UNKNOWN\r\n{quote}", "updateAuthor": { "name": "wiltonkkw", "key": "wiltonkkw", "displayName": "Wilton Kwok", "active": true, "timeZone": "Asia/Shanghai" }, "created": "2015-03-24T08:58:04.000+0000", "updated": "2015-03-24T08:58:04.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }