diff --git a/libvideoeditor/lvpp/AudioPlayerBase.cpp b/libvideoeditor/lvpp/AudioPlayerBase.cpp
index eac45b1..26c6a63 100644
--- a/libvideoeditor/lvpp/AudioPlayerBase.cpp
+++ b/libvideoeditor/lvpp/AudioPlayerBase.cpp
@@ -243,7 +243,7 @@
 }
 
 // static
-void AudioPlayerBase::AudioCallback(AudioTrack::event_type event, void *user, void *info) {
+void AudioPlayerBase::AudioCallback(int event, void *user, void *info) {
     static_cast<AudioPlayerBase *>(user)->AudioCallback(event, info);
 }
 
@@ -269,7 +269,7 @@
     return me->fillBuffer(buffer, size);
 }
 
-void AudioPlayerBase::AudioCallback(AudioTrack::event_type event, void *info) {
+void AudioPlayerBase::AudioCallback(int event, void *info) {
     if (event != AudioTrack::EVENT_MORE_DATA) {
         return;
     }
diff --git a/libvideoeditor/lvpp/AudioPlayerBase.h b/libvideoeditor/lvpp/AudioPlayerBase.h
index b82757b..31b9fa2 100644
--- a/libvideoeditor/lvpp/AudioPlayerBase.h
+++ b/libvideoeditor/lvpp/AudioPlayerBase.h
@@ -18,7 +18,6 @@
 
 #define AUDIO_PLAYER_BASE_H_
 
-#include <media/AudioTrack.h>
 #include <media/MediaPlayerInterface.h>
 #include <media/stagefright/MediaBuffer.h>
 #include <media/stagefright/TimeSource.h>
@@ -96,8 +95,8 @@
     sp<MediaPlayerBase::AudioSink> mAudioSink;
     PreviewPlayerBase *mObserver;
 
-    static void AudioCallback(AudioTrack::event_type event, void *user, void *info);
-    void AudioCallback(AudioTrack::event_type event, void *info);
+    static void AudioCallback(int event, void *user, void *info);
+    void AudioCallback(int event, void *info);
 
     static size_t AudioSinkCallback(
             MediaPlayerBase::AudioSink *audioSink,
diff --git a/libvideoeditor/lvpp/VideoEditorPlayer.cpp b/libvideoeditor/lvpp/VideoEditorPlayer.cpp
index 033445e..912aab0 100755
--- a/libvideoeditor/lvpp/VideoEditorPlayer.cpp
+++ b/libvideoeditor/lvpp/VideoEditorPlayer.cpp
@@ -525,7 +525,7 @@
 
 // static
 void VideoEditorPlayer::VeAudioOutput::CallbackWrapper(
-        AudioTrack::event_type event, void *cookie, void *info) {
+        int event, void *cookie, void *info) {
     //LOGV("VeAudioOutput::callbackwrapper");
     if (event != AudioTrack::EVENT_MORE_DATA) {
         return;
diff --git a/libvideoeditor/lvpp/VideoEditorPlayer.h b/libvideoeditor/lvpp/VideoEditorPlayer.h
index f87a076..349f7fd 100755
--- a/libvideoeditor/lvpp/VideoEditorPlayer.h
+++ b/libvideoeditor/lvpp/VideoEditorPlayer.h
@@ -68,7 +68,7 @@
     private:
         static void             setMinBufferCount();
         static void             CallbackWrapper(
-                AudioTrack::event_type event, void *me, void *info);
+                int event, void *me, void *info);
 
         AudioTrack*             mTrack;
         AudioCallback           mCallback;
