@Override
 public void load() throws IOException, InterruptedException {
   // We always load from the beginning, so reset the sampleSize to 0.
   sampleSize = 0;
   try {
     // Create and open the input.
     dataSource.open(new DataSpec(uri));
     // Load the sample data.
     int result = 0;
     while (result != C.RESULT_END_OF_INPUT) {
       sampleSize += result;
       if (sampleSize == sampleData.length) {
         sampleData = Arrays.copyOf(sampleData, sampleData.length * 2);
       }
       result = dataSource.read(sampleData, sampleSize, sampleData.length - sampleSize);
     }
   } finally {
     dataSource.close();
   }
 }