Files
LayaNative2.0/Conch/source/conch/Audio/android/JCAudioMp3Media.cpp
T
2020-11-11 16:17:13 +08:00

124 lines
3.8 KiB
C++

/**
@file JCAudioMp3Media.cpp
@brief
@author dt
@version 1.0
@date 2014_12_24
*/
//包含头文件
#include <vector>
#include "JCAudioMp3Media.h"
#include "util/Log.h"
#include "../../CToJavaBridge.h"
namespace laya
{
//------------------------------------------------------------------------------
JCAudioMp3Media::JCAudioMp3Media()
{
m_nCurrentVolume = 1.0;
m_pJSAudio = NULL;
}
//------------------------------------------------------------------------------
JCAudioMp3Media::~JCAudioMp3Media( void )
{
m_pJSAudio = NULL;
}
//------------------------------------------------------------------------------
void JCAudioMp3Media::play( const char* p_sUrl,int p_nTimes,float nCurrentTime,JCAudioInterface* p_pJSAudio )
{
m_pJSAudio = p_pJSAudio;
CToJavaBridge::JavaRet ret;
CToJavaBridge::GetInstance()->callMethod("layaair.game.utility.LayaAudioMusic", "playBackgroundMusic", p_sUrl, p_nTimes,(int)(nCurrentTime*1000),ret);
}
//------------------------------------------------------------------------------
void JCAudioMp3Media::delAudio( JCAudioInterface* p_pJSAudio )
{
if( m_pJSAudio == p_pJSAudio){
m_pJSAudio = NULL;
}
}
//------------------------------------------------------------------------------
void JCAudioMp3Media::pause()
{
CToJavaBridge::JavaRet ret;
CToJavaBridge::GetInstance()->callMethod("layaair.game.utility.LayaAudioMusic", "pauseBackgroundMusic", ret);
}
//------------------------------------------------------------------------------
void JCAudioMp3Media::stop()
{
CToJavaBridge::JavaRet ret;
CToJavaBridge::GetInstance()->callMethod("layaair.game.utility.LayaAudioMusic", "stopBackgroundMusic", ret);
m_pJSAudio = NULL;
}
//------------------------------------------------------------------------------
void JCAudioMp3Media::resume()
{
CToJavaBridge::JavaRet ret;
CToJavaBridge::GetInstance()->callMethod("layaair.game.utility.LayaAudioMusic", "resumeBackgroundMusic", ret);
}
//------------------------------------------------------------------------------
void JCAudioMp3Media::setVolume( float p_nVolume )
{
m_nCurrentVolume = p_nVolume;
/*if( p_nVolume < -10000 ) p_nVolume = -10000;
if( p_nVolume > 0 ) p_nVolume = 0;
p_nVolume = (p_nVolume+10000)/10000.0;*/
CToJavaBridge::JavaRet ret;
CToJavaBridge::GetInstance()->callMethod("layaair.game.utility.LayaAudioMusic", "setBackgroundMusicVolume",p_nVolume, ret);
}
//------------------------------------------------------------------------------
void JCAudioMp3Media::setMute( bool p_bMute )
{
if( p_bMute == true )
{
float nTemp = m_nCurrentVolume;
setVolume( 0.0f );
m_nCurrentVolume = nTemp;
}
else
{
setVolume( m_nCurrentVolume );
}
}
//------------------------------------------------------------------------------
void JCAudioMp3Media::onPlayEnd()
{
if( m_pJSAudio )
{
m_pJSAudio->onPlayEnd();
}
}
void JCAudioMp3Media::setCurrentTime(double nCurrentTime)
{
CToJavaBridge::JavaRet ret;
CToJavaBridge::GetInstance()->callMethod("layaair.game.utility.LayaAudioMusic", "setCurrentTime", (float)nCurrentTime, ret);
}
//------------------------------------------------------------------------------
double JCAudioMp3Media::getCurrentTime()
{
CToJavaBridge::JavaRet ret;
if (CToJavaBridge::GetInstance()->callMethod("layaair.game.utility.LayaAudioMusic", "getCurrentTime", ret, CToJavaBridge::JavaRet::RT_Float))
{
return (double)ret.floatRet;
}
return 0.0f;
}
//------------------------------------------------------------------------------
double JCAudioMp3Media::getDuration()
{
CToJavaBridge::JavaRet ret;
if (CToJavaBridge::GetInstance()->callMethod("layaair.game.utility.LayaAudioMusic", "getDuration", ret, CToJavaBridge::JavaRet::RT_Float))
{
return (double)ret.floatRet;
}
return 0.0f;
}
//------------------------------------------------------------------------------
}
//-----------------------------END FILE--------------------------------