FileDocCategorySizeDatePackage
MediaPlayerStreamingStressTest.javaAPI DocAndroid 5.1 API6579Thu Mar 12 22:22:30 GMT 2015com.android.mediaframeworktest.stress

MediaPlayerStreamingStressTest

public class MediaPlayerStreamingStressTest extends android.test.ActivityInstrumentationTestCase2
Junit / Instrumentation test case for the media player

Fields Summary
private String
TAG
private String
mStreamingSrc
private int
mTotalPlaybackError
private int
mTotalComplete
private int
mTotalInfoUnknown
private int
mTotalVideoTrackLagging
private int
mTotalBadInterleaving
private int
mTotalNotSeekable
private int
mTotalMetaDataUpdate
private static final String
PLAYBACK_RESULT
Constructors Summary
public MediaPlayerStreamingStressTest()


      
        super("com.android.mediaframeworktest", MediaFrameworkTest.class);
    
Methods Summary
protected voidsetUp()

        //Insert a 2 second before launching the test activity. This is
        //the workaround for the race condition of requesting the updated surface.
        Thread.sleep(2000);
        getActivity();
        MediaPlayerStressTestRunner mRunner = (MediaPlayerStressTestRunner)getInstrumentation();
        Bundle arguments = mRunner.getArguments();
        mStreamingSrc = arguments.getString("streaming-source");
        if (mStreamingSrc == null) {
            mStreamingSrc = MediaNames.MEDIA_STREAMING_SRC;
        }
        super.setUp();
    
public voidtestVideoPlayback()

        String fileWithError = "Filename:\n";
        File playbackOutput = new File(Environment.getExternalStorageDirectory(), PLAYBACK_RESULT);
        Writer output = new BufferedWriter(new FileWriter(playbackOutput, true));

        boolean testResult = true;
        // load directory files
        boolean onCompleteSuccess = false;


        Log.i(TAG, "Streaming src file: " + mStreamingSrc);
        //TODO: add try catch

        File f = new File(mStreamingSrc);
        BufferedReader br = new BufferedReader(new FileReader(f));
        List<String> urls = new ArrayList<String>();
        String line;
        while ((line = br.readLine()) != null) {
           urls.add(line.trim());
        }
        br.close();
        if (urls == null) {
            Log.v("MediaPlayerStreamingTest:testVideoPlayback", "no url found");
            return;
        } else {
            for (int i = 0; i < urls.size(); i++) {
                //Get url
                String filename = urls.get(i);
                onCompleteSuccess =
                    CodecTest.playMediaSamples(filename, 60000);
                if (!onCompleteSuccess){
                    //Don't fail the test right away, print out the failure file.
                    fileWithError += filename + '\n";
                    Log.v(TAG, "Failure File : " + fileWithError);
                    testResult = false;
                }
                Thread.sleep(3000);
                //Write test result to an output file
                writeTestOutput(filename,output);
                //Get the summary
                updateTestResult();
            }
            writeTestSummary(output);
            output.close();
            assertTrue("testMediaSamples", testResult);
       }
    
private voidupdateTestResult()

        if (CodecTest.onCompleteSuccess){
            mTotalComplete++;
        }
        else if (CodecTest.mPlaybackError){
            mTotalPlaybackError++;
        }
        mTotalInfoUnknown += CodecTest.mMediaInfoUnknownCount;
        mTotalVideoTrackLagging += CodecTest.mMediaInfoVideoTrackLaggingCount;
        mTotalBadInterleaving += CodecTest.mMediaInfoBadInterleavingCount;
        mTotalNotSeekable += CodecTest.mMediaInfoNotSeekableCount;
        mTotalMetaDataUpdate += CodecTest.mMediaInfoMetdataUpdateCount;
    
private voidwriteTestOutput(java.lang.String filename, java.io.Writer output)


           
        output.write("URL: " + filename);
        output.write(" Complete: " + CodecTest.onCompleteSuccess);
        output.write(" Error: " + CodecTest.mPlaybackError);
        output.write(" Unknown Info: " + CodecTest.mMediaInfoUnknownCount);
        output.write(" Track Lagging: " +  CodecTest.mMediaInfoVideoTrackLaggingCount);
        output.write(" Bad Interleaving: " + CodecTest.mMediaInfoBadInterleavingCount);
        output.write(" Not Seekable: " + CodecTest.mMediaInfoNotSeekableCount);
        output.write(" Info Meta data update: " + CodecTest.mMediaInfoMetdataUpdateCount);
        output.write("\n");
    
private voidwriteTestSummary(java.io.Writer output)

        output.write("Total Result:\n");
        output.write("Total Complete: " + mTotalComplete + "\n");
        output.write("Total Error: " + mTotalPlaybackError + "\n");
        output.write("Total Unknown Info: " + mTotalInfoUnknown + "\n");
        output.write("Total Track Lagging: " + mTotalVideoTrackLagging + "\n" );
        output.write("Total Bad Interleaving: " + mTotalBadInterleaving + "\n");
        output.write("Total Not Seekable: " + mTotalNotSeekable + "\n");
        output.write("Total Info Meta data update: " + mTotalMetaDataUpdate + "\n");
        output.write("\n");