Commit e19249d0ae8aeef2b9522fffb278bce82424a9b0
1 parent
f81d71c7
SetDefaultQuality
Showing
1 changed file
with
43 additions
and
23 deletions
src/com/upc/pbe/upcnews/HLS.java
@@ -17,6 +17,8 @@ public class HLS | @@ -17,6 +17,8 @@ public class HLS | ||
17 | private int currentQuality; // 0 es la mas alta | 17 | private int currentQuality; // 0 es la mas alta |
18 | private int currentSegment; | 18 | private int currentSegment; |
19 | private boolean endReached; | 19 | private boolean endReached; |
20 | + private int defaultQuality; | ||
21 | + private boolean setDefault; | ||
20 | 22 | ||
21 | public HLS(ArrayList<ParentList> parsed, String localFolder) | 23 | public HLS(ArrayList<ParentList> parsed, String localFolder) |
22 | { | 24 | { |
@@ -29,20 +31,39 @@ public class HLS | @@ -29,20 +31,39 @@ public class HLS | ||
29 | Log.d(TAG, "Esborrat " + files[i].toString()); | 31 | Log.d(TAG, "Esborrat " + files[i].toString()); |
30 | deleteme.delete(); | 32 | deleteme.delete(); |
31 | } | 33 | } |
32 | - | ||
33 | - currentVideo = currentSegment = 0; | 34 | + |
35 | + currentVideo = currentSegment = 0; | ||
34 | this.videos = parsed; | 36 | this.videos = parsed; |
35 | endReached = false; | 37 | endReached = false; |
38 | + setDefault = true; | ||
36 | } | 39 | } |
37 | - | ||
38 | - public void setQuality(int qual){ | ||
39 | - currentQuality = qual; | 40 | + |
41 | + public void setQuality(int qual) | ||
42 | + { | ||
43 | + defaultQuality = qual; | ||
40 | } | 44 | } |
41 | - | 45 | + |
42 | public void loadVideo() | 46 | public void loadVideo() |
43 | { | 47 | { |
44 | // Carrega la qualitat i, a partir d'aixo, el seguent segment | 48 | // Carrega la qualitat i, a partir d'aixo, el seguent segment |
45 | qualities = videos.get(currentVideo++).getLists(); | 49 | qualities = videos.get(currentVideo++).getLists(); |
50 | + if(setDefault) | ||
51 | + { | ||
52 | + switch (defaultQuality) | ||
53 | + { | ||
54 | + case 0: | ||
55 | + currentQuality = 0; | ||
56 | + break; | ||
57 | + case 1: | ||
58 | + currentQuality = (qualities.size()-1)/2; | ||
59 | + break; | ||
60 | + case 2: | ||
61 | + currentQuality = qualities.size()-1; | ||
62 | + break; | ||
63 | + } | ||
64 | + setDefault = true; | ||
65 | + } | ||
66 | + | ||
46 | segments = qualities.get(currentQuality).getSegments(); | 67 | segments = qualities.get(currentQuality).getSegments(); |
47 | if (currentVideo == videos.size()) | 68 | if (currentVideo == videos.size()) |
48 | { | 69 | { |
@@ -58,8 +79,7 @@ public class HLS | @@ -58,8 +79,7 @@ public class HLS | ||
58 | if (endReached) | 79 | if (endReached) |
59 | { | 80 | { |
60 | return null; | 81 | return null; |
61 | - } | ||
62 | - currentQuality = 0; | 82 | + }; |
63 | currentSegment = 0; | 83 | currentSegment = 0; |
64 | loadVideo(); | 84 | loadVideo(); |
65 | } | 85 | } |
@@ -67,46 +87,46 @@ public class HLS | @@ -67,46 +87,46 @@ public class HLS | ||
67 | Log.d(TAG, seg.getName() + " " + seg.getURL()); | 87 | Log.d(TAG, seg.getName() + " " + seg.getURL()); |
68 | return seg.getURL(); | 88 | return seg.getURL(); |
69 | } | 89 | } |
70 | - | ||
71 | - | 90 | + |
72 | public void updateQuality(long bps) | 91 | public void updateQuality(long bps) |
73 | { | 92 | { |
74 | if ((bps <= qualities.get(currentQuality).getQuality()) && (bps != -1)) | 93 | if ((bps <= qualities.get(currentQuality).getQuality()) && (bps != -1)) |
75 | { | 94 | { |
76 | int newQuality; | 95 | int newQuality; |
77 | - for(newQuality = 0; newQuality < qualities.size(); newQuality++) | 96 | + for (newQuality = 0; newQuality < qualities.size(); newQuality++) |
78 | { | 97 | { |
79 | - if(bps >= qualities.get(newQuality).getQuality()) | 98 | + if (bps >= qualities.get(newQuality).getQuality()) |
80 | { | 99 | { |
81 | break; | 100 | break; |
82 | } | 101 | } |
83 | } | 102 | } |
84 | - if(currentQuality != newQuality) | 103 | + if (currentQuality != newQuality) |
85 | { | 104 | { |
105 | + setDefault = false; //Override | ||
86 | currentQuality = newQuality; | 106 | currentQuality = newQuality; |
87 | - currentVideo--; //Corregimos el del loadVideo() | ||
88 | - loadVideo(); //Cargamos la nueva calidad | 107 | + currentVideo--; // Corregimos el del loadVideo() |
108 | + loadVideo(); // Cargamos la nueva calidad | ||
89 | } | 109 | } |
90 | } | 110 | } |
91 | - else if((bps > qualities.get(currentQuality).getQuality()) && (bps != -1)) | 111 | + else if ((bps > qualities.get(currentQuality).getQuality()) |
112 | + && (bps != -1)) | ||
92 | { | 113 | { |
93 | int newQuality; | 114 | int newQuality; |
94 | - for(newQuality = qualities.size()-1; newQuality > 0; newQuality--) | 115 | + for (newQuality = qualities.size() - 1; newQuality > 0; newQuality--) |
95 | { | 116 | { |
96 | - if(bps <= qualities.get(newQuality).getQuality()) | 117 | + if (bps <= qualities.get(newQuality).getQuality()) |
97 | { | 118 | { |
98 | newQuality--; | 119 | newQuality--; |
99 | break; | 120 | break; |
100 | } | 121 | } |
101 | } | 122 | } |
102 | - if(currentQuality != newQuality) | 123 | + if (currentQuality != newQuality) |
103 | { | 124 | { |
104 | currentQuality = newQuality; | 125 | currentQuality = newQuality; |
105 | - currentVideo--; //Corregimos el del loadVideo() | ||
106 | - loadVideo(); //Cargamos la nueva calidad | 126 | + currentVideo--; // Corregimos el del loadVideo() |
127 | + loadVideo(); // Cargamos la nueva calidad | ||
107 | } | 128 | } |
108 | } | 129 | } |
109 | } | 130 | } |
110 | - | ||
111 | - | 131 | + |
112 | } | 132 | } |
113 | \ No newline at end of file | 133 | \ No newline at end of file |