📄 mpstreamqueueplayertest.cpp
字号:
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$////////////////////////////////////////////////////////////////////////#include <cppunit/extensions/HelperMacros.h>#include <cppunit/TestCase.h>#include "test/mp/MpTestConfig.h"#include "test/mp/MyPlayerListenerPoller.h"#include "test/mp/MyPlayerListenerHistoryKeeper.h"#include "test/mp/MyStreamQueueHistoryKeeper.h"#include "mp/MpMisc.h"#include "mp/MpStreamPlaylistPlayer.h"#include "mp/MpStreamQueuePlayer.h"#include "os/OsDefs.h"#include "mp/StreamDefs.h"#include "net/Url.h"class MpStreamQueuePlayerTest : public CppUnit::TestCase{ CPPUNIT_TEST_SUITE(MpStreamQueuePlayerTest); CPPUNIT_TEST(testRawSynchronousSingle); CPPUNIT_TEST(testRawSynchronousMultiple); CPPUNIT_TEST(testRawSynchronousMultipleDelay); CPPUNIT_TEST(testRawSynchronousMultiplePreload); CPPUNIT_TEST(testRawSynchronousMultipleClear); CPPUNIT_TEST(testRawSynchronousMultipleReset); CPPUNIT_TEST(testRawSynchronousMultipleManyBad); CPPUNIT_TEST(testRawSynchronousMultipleMany); CPPUNIT_TEST(testRawSynchronousMultipleDelete); CPPUNIT_TEST(testRawSynchronousMultipleBadRaw); CPPUNIT_TEST(testRawSynchronousMultipleBadWav); CPPUNIT_TEST(testRawSynchronousManyBadRaw); CPPUNIT_TEST_SUITE_END(); public: void setUp() { mCfg = MpTestConfig::getTestInstance(); } void testRawSynchronousSingle() { char szUrl[128] ; int i ; osPrintf("testRawSynchronousSingle\n") ; for (i=0; i<TESTING_ATTEMPTS; i++) { sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, i) ; osPrintf("Playing %s\n", szUrl) ; Url url(szUrl) ; MpStreamQueuePlayer* pPlayer = new MpStreamQueuePlayer(mCfg->getFlowGraph()->getMsgQ()) ; pPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pPlayer->play() ; pPlayer->wait() ; delete pPlayer ; } } void testRawSynchronousMultiple() { osPrintf("testRawSynchronousMultiple\n") ; for (int j=0; j<TESTING_ATTEMPTS; j++) { char szUrl[128] ; int i ; MpStreamQueuePlayer* pPlayer = new MpStreamQueuePlayer(mCfg->getFlowGraph()->getMsgQ()) ; for (i=0; i<4; i++) { sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, i) ; osPrintf("Playing %s\n", szUrl) ; Url url(szUrl) ; pPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; } pPlayer->play() ; pPlayer->wait() ; delete pPlayer ; } } void testRawSynchronousMultipleDelay() { osPrintf("testRawSynchronousMultipleDelay\n") ; for (int j=0; j<TESTING_ATTEMPTS; j++) { char szUrl[128] ; int i ; MpStreamQueuePlayer* pPlayer = new MpStreamQueuePlayer(mCfg->getFlowGraph()->getMsgQ()) ; for (i=0; i<4; i++) { sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, i) ; osPrintf("Playing %s\n", szUrl) ; Url url(szUrl) ; pPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pPlayer->play() ; OsTask::delay(500) ; } pPlayer->wait() ; delete pPlayer ; } } void testRawSynchronousMultiplePreload() { osPrintf("testRawSynchronousMultiplePreload\n") ; for (int j=0; j<TESTING_ATTEMPTS; j++) { char szUrl[128] ; int i ; MpStreamQueuePlayer* pPlayer = new MpStreamQueuePlayer(mCfg->getFlowGraph()->getMsgQ()) ; for (i=0; i<2; i++) { sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, i) ; osPrintf("Playing %s\n", szUrl) ; Url url(szUrl) ; pPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; } pPlayer->play() ; for (i=2; i<5; i++) { sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, i) ; osPrintf("Playing %s\n", szUrl) ; Url url(szUrl) ; pPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; } pPlayer->wait() ; pPlayer->play() ; pPlayer->wait() ; delete pPlayer ; } } void testRawSynchronousMultipleClear() { osPrintf("testRawSynchronousMultipleClear\n") ; for (int j=0; j<TESTING_ATTEMPTS; j++) { char szUrl[128] ; int i ; MpStreamQueuePlayer* pPlayer = new MpStreamQueuePlayer(mCfg->getFlowGraph()->getMsgQ()) ; for (i=0; i<2; i++) { sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, i) ; osPrintf("Playing %s\n", szUrl) ; Url url(szUrl) ; pPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; } pPlayer->play() ; for (i=2; i<4; i++) { sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, i) ; osPrintf("Playing %s\n", szUrl) ; Url url(szUrl) ; pPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; } OsTask::delay(1000) ; pPlayer->clear() ; for (i=5; i<7; i++) { sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, i) ; osPrintf("Playing %s\n", szUrl) ; Url url(szUrl) ; pPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; } pPlayer->wait() ; pPlayer->play() ; pPlayer->wait() ; delete pPlayer ; } } void testRawSynchronousMultipleReset() { osPrintf("testRawSynchronousMultipleReset\n") ; for (int j=0; j<TESTING_ATTEMPTS; j++) { MyStreamQueueHistoryKeeper* pListener = new MyStreamQueueHistoryKeeper() ; char szUrl[128] ; MpStreamQueuePlayer* pPlayer = new MpStreamQueuePlayer(mCfg->getFlowGraph()->getMsgQ()) ; pPlayer->addListener(pListener) ; sprintf(szUrl, "http://%s/longstream.raw", BASE_URL) ; osPrintf("Playing %s\n", szUrl) ; Url url(szUrl) ; pPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pPlayer->play() ; int delay = abs(rand() % 3000) ; if (delay > 300) OsTask::delay(delay) ; pPlayer->reset() ; sprintf(szUrl, "http://%s/nums/8.wav", BASE_URL) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -