首页 > 代码库 > [Bada开发]播放实时rtsp流

[Bada开发]播放实时rtsp流

bada是三星公司自主开发的移动操作系统,它的特点是配置灵活、用户交互性好、面向服务,非常重视SNS集成和地理位置服务应用。本文介绍了如何在bada平台实现播放实时rtsp流。

bada是三星公司自主开发的移动操作系统,它的特点是配置灵活、用户交互性好、面向服务,非常重视SNS集成和地理位置服务应用。bada的设计目标是开创人人能用智能手机的时代。本文介绍了如何在bada平台实现播放实时rtsp流。

使用Osp::Media::Player类

 

  1. The supported formats in streaming
  2. Video : H.264, H.263, MPEG4
  3. Audio : AMR-NB, AAC, AAC+, EAAC+
  4. The supported protocol in streaming
  5. RTSP
  6. {
  7. __pPanel= new OverlayPanel();
  8. __pPanel->Construct(Rectangle(0,58,480,560));
  9. AddControl(*__pPanel);
  10. __pPlayer = new Player();
  11. Osp::Graphics::BufferInfo bufferInfo;
  12. r = __pPanel->GetBackgroundBufferInfo(bufferInfo);
  13. __pListener = new VideoPlayerListener;
  14. r = __pPlayer->Construct(*__pListener, &bufferInfo);
  15. VideoPlayerPlay();
  16. }
  17. void
  18. VideoPlayerForm::VideoPlayerPlay()
  19. {
  20. result r = E_SUCCESS;
  21. if(openFlag == false)
  22. {
  23. String resolveString(L"rtsp://***");
  24. Uri baseUri;
  25. baseUri.SetUri(resolveString);
  26. r = __pPlayer->OpenUrl(baseUri);
  27. r = __pPlayer->Play();
  28. openFlag = true;
  29. }
  30. else
  31. {
  32. AppLog("file being played");
  33. }
  34. }
  35. //因为播放的是实时流媒体,暂停时直接停止,再次恢复时重新建立连接(调用VideoPlayerPlay())
  36. void
  37. VideoPlayerForm::VideoPlayerPause()
  38. {
  39. result r = E_SUCCESS;
  40. PlayerState nowState = __pPlayer->GetState();
  41. if(nowState == PLAYER_STATE_PLAYING)
  42. {
  43. AppLog("stop");
  44. r = __pPlayer->Stop();
  45. if(IsFailed(r))
  46. {
  47. AppLog(">>>>>> (VideoPlayer::VideoPlayerStop) Stop has failed: %s\n", GetErrorMessage(r));
  48. return;
  49. }
  50. r = __pPlayer->Close();
  51. if(IsFailed(r))
  52. {
  53. AppLog(">>>>>> (VideoPlayer::VideoPlayerStop) Close has failed: %s\n", GetErrorMessage(r));
  54. return;
  55. }
  56. openFlag = false;
  57. }
  58. else
  59. {
  60. AppLog("file does not play");
  61. }
  62. }