Commit c9c5b5b3f98e339622a1706b3a026fde9d7e4bcf
1 parent
38bc30bc
Mejoras en HLS
Showing
3 changed files
with
42 additions
and
49 deletions
src/com/upc/pbe/upcnews/Descarrega.java
@@ -40,15 +40,13 @@ public class Descarrega extends AsyncTask<Object, Object, Object> | @@ -40,15 +40,13 @@ public class Descarrega extends AsyncTask<Object, Object, Object> | ||
40 | // Llegeix cada byte i l'escriu en un arxiu fins que arriba a -1 | 40 | // Llegeix cada byte i l'escriu en un arxiu fins que arriba a -1 |
41 | InputStream in = conn.getInputStream(); | 41 | InputStream in = conn.getInputStream(); |
42 | OutputStream out = new FileOutputStream(file); | 42 | OutputStream out = new FileOutputStream(file); |
43 | - int b = 0; | ||
44 | - while (b != -1) | 43 | + byte data[] = new byte[102400]; //Mejor throughput!! |
44 | + int count; | ||
45 | + while((count = in.read(data)) != -1) | ||
45 | { | 46 | { |
46 | - b = in.read(); | ||
47 | - if (b != -1) | ||
48 | - { | ||
49 | - out.write(b); | ||
50 | - } | 47 | + out.write(data,0,count); |
51 | } | 48 | } |
49 | + out.flush(); | ||
52 | out.close(); | 50 | out.close(); |
53 | in.close(); | 51 | in.close(); |
54 | } | 52 | } |
src/com/upc/pbe/upcnews/HLS.java
@@ -65,43 +65,52 @@ public class HLS | @@ -65,43 +65,52 @@ public class HLS | ||
65 | loadVideo(); | 65 | loadVideo(); |
66 | } | 66 | } |
67 | Segment seg = segments.get(currentSegment++); | 67 | Segment seg = segments.get(currentSegment++); |
68 | - Log.d(TAG, seg.getName() + " " + seg.getURL()); | ||
69 | - long startTime = System.currentTimeMillis(); | ||
70 | - long segmentBytes = TrafficStats.getTotalRxBytes(); | ||
71 | - d.descarregarguardar(seg.getURL(), localFolder); | ||
72 | - double bps = bm.Measure(segmentBytes, startTime); | ||
73 | - Log.d(TAG, "Velocitat actual (KB/s): " + (bps / 8e3)); | ||
74 | - if ((bps <= qualities.get(currentQuality).getQuality()) && (bps != -1)) | 68 | + String path = localFolder+seg.getURL().substring(seg.getURL().lastIndexOf("/") + 1, seg.getURL().length()); |
69 | + if(!new File(path).exists()) //Para qué bajarlo dos veces? | ||
75 | { | 70 | { |
76 | - int newQuality; | ||
77 | - for(newQuality = 0; newQuality < qualities.size(); newQuality++) | 71 | + Log.d(TAG, seg.getName() + " " + seg.getURL()); |
72 | + long startTime = System.currentTimeMillis(); | ||
73 | + long segmentBytes = TrafficStats.getTotalRxBytes(); | ||
74 | + d.descarregarguardar(seg.getURL(), localFolder); | ||
75 | + double bps = bm.Measure(segmentBytes, startTime); | ||
76 | + Log.d(TAG, "Velocitat actual (KB/s): " + (bps / 8e3)); | ||
77 | + if ((bps <= qualities.get(currentQuality).getQuality()) && (bps != -1)) | ||
78 | { | 78 | { |
79 | - if(bps >= qualities.get(newQuality).getQuality()) | 79 | + int newQuality; |
80 | + for(newQuality = 0; newQuality < qualities.size(); newQuality++) | ||
80 | { | 81 | { |
81 | - break; | 82 | + if(bps >= qualities.get(newQuality).getQuality()) |
83 | + { | ||
84 | + break; | ||
85 | + } | ||
86 | + } | ||
87 | + if(currentQuality != newQuality) | ||
88 | + { | ||
89 | + currentQuality = newQuality; | ||
90 | + currentVideo--; //Corregimos el del loadVideo() | ||
91 | + loadVideo(); //Cargamos la nueva calidad | ||
82 | } | 92 | } |
83 | } | 93 | } |
84 | - currentQuality = newQuality; | ||
85 | - currentVideo--; //Corregimos el del loadVideo() | ||
86 | - loadVideo(); | ||
87 | - } | ||
88 | - else if((bps > qualities.get(currentQuality).getQuality()) && (bps != -1)) | ||
89 | - { | ||
90 | - int newQuality; | ||
91 | - for(newQuality = qualities.size(); newQuality <= 0; newQuality--) | 94 | + else if((bps > qualities.get(currentQuality).getQuality()) && (bps != -1)) |
92 | { | 95 | { |
93 | - if(bps <= qualities.get(newQuality).getQuality()) | 96 | + int newQuality; |
97 | + for(newQuality = qualities.size()-1; newQuality > 0; newQuality--) | ||
98 | + { | ||
99 | + if(bps <= qualities.get(newQuality).getQuality()) | ||
100 | + { | ||
101 | + newQuality--; | ||
102 | + break; | ||
103 | + } | ||
104 | + } | ||
105 | + if(currentQuality != newQuality) | ||
94 | { | 106 | { |
95 | - newQuality--; | ||
96 | - break; | 107 | + currentQuality = newQuality; |
108 | + currentVideo--; //Corregimos el del loadVideo() | ||
109 | + loadVideo(); //Cargamos la nueva calidad | ||
97 | } | 110 | } |
98 | } | 111 | } |
99 | - currentQuality = newQuality; | ||
100 | - currentVideo--; //Corregimos el del loadVideo() | ||
101 | - loadVideo(); | ||
102 | } | 112 | } |
103 | - return localFolder | ||
104 | - + seg.getURL().substring(seg.getURL().lastIndexOf("/") + 1, seg.getURL().length()); | 113 | + return path; |
105 | } | 114 | } |
106 | 115 | ||
107 | public String previous() throws IOException | 116 | public String previous() throws IOException |
src/com/upc/pbe/upcnews/MainActivity.java
@@ -63,19 +63,6 @@ public class MainActivity extends Activity implements OnClickListener { | @@ -63,19 +63,6 @@ public class MainActivity extends Activity implements OnClickListener { | ||
63 | alertaText = (TextView) findViewById(R.id.textViewAlerta); | 63 | alertaText = (TextView) findViewById(R.id.textViewAlerta); |
64 | alertaText.setVisibility(View.VISIBLE); | 64 | alertaText.setVisibility(View.VISIBLE); |
65 | } | 65 | } |
66 | - /* | ||
67 | - * TESTING ANDROID DOWNLOADMANAGER NATIU | ||
68 | - * | ||
69 | - * | ||
70 | - * | ||
71 | - String pfile = "sample_ep_128k-00001.ts"; | ||
72 | - DownloadManager.Request request = new DownloadManager.Request(Uri.parse("http://revistes.upc.es/~imanol/PBE/"+pfile)); | ||
73 | - request.setDescription("SetDescprition"); | ||
74 | - request.setTitle("SetTitle"); | ||
75 | - request.setDestinationInExternalPublicDir(Environment.getExternalStorageDirectory().toString(), "sample_ep_128k-00001.ts"); | ||
76 | - DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); | ||
77 | - manager.enqueue(request); | ||
78 | - */ | ||
79 | } | 66 | } |
80 | 67 | ||
81 | public void onClick(View v) { | 68 | public void onClick(View v) { |
@@ -137,11 +124,10 @@ public class MainActivity extends Activity implements OnClickListener { | @@ -137,11 +124,10 @@ public class MainActivity extends Activity implements OnClickListener { | ||
137 | } | 124 | } |
138 | /* | 125 | /* |
139 | * COSAS POR HACER | 126 | * COSAS POR HACER |
140 | - * (RELEASE-CRITICAL) Lentitud descarga | ||
141 | * (NORMAL) Quitar la elección de calidad al inicio? Discutir | 127 | * (NORMAL) Quitar la elección de calidad al inicio? Discutir |
142 | * (NORMAL) Poner la defaultURL al server de PBE | 128 | * (NORMAL) Poner la defaultURL al server de PBE |
143 | * (WISHLIST) Descarga en segundo plano (Mejora dificil) | 129 | * (WISHLIST) Descarga en segundo plano (Mejora dificil) |
144 | - * (WISHLIST) Hacer streaming DE VERDAD (requiere descarga en segundo plano) | 130 | + * (WISHLIST) Hacer streaming DE VERDAD (appendeando los videos, seria IMPRESIONANTE) |
145 | * (WISHLIST) A�adir gif Imanol bailando (Easter eggs? vais en serio? XDDDDDDDDDDDD) | 131 | * (WISHLIST) A�adir gif Imanol bailando (Easter eggs? vais en serio? XDDDDDDDDDDDD) |
146 | * Borrar esta puta mierda | 132 | * Borrar esta puta mierda |
147 | */ | 133 | */ |