1

我需要一些有关 OpenSL ES 的帮助 - 我想更改 mp3 歌曲的音高。我使用的代码在这里:Android : How to change Playback Rate of music using OpenSL ES但是在这个例子中它被注释了。如果我取消注释它 - 它不会工作。执行代码后

result = (*uriPlayerObject)->GetInterface(uriPlayerObject, SL_IID_PITCH,
            &uriPlaybackPitch);
    assert(SL_RESULT_SUCCESS == result);

uriPlaybackPitch == NULL

LogCat 是:

OSLESMediaPlayer(7173): create engine
OSLESMediaPlayer(7173): realize the engine
OSLESMediaPlayer(7173): get the engine interface
OSLESMediaPlayer(7173): create output mix
libOpenSLES(7173): class OutputMix interface 0 requested but unavailable MPH=33
OSLESMediaPlayer(7173): realize the output mix
libOpenSLES(7173): Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED)
libOpenSLES(7173): Leaving PlaybackRate::SetPropertyConstraints (SL_RESULT_FEATURE_UNSUPPORTED)
/OSLESMediaPlayer(7173): Feature Unsupported
libc(7173): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
4

2 回答 2

1

真的来晚了,也许你已经解决了,但不支持该接口。适用于 Android 的 OpenSL ES 不是完整的实现。您可以在此处找到支持的接口:http: //mobilepearls.com/labs/native-android-api/ndk/docs/opensles/

于 2013-09-28T06:08:16.003 回答
0

NDK文档概述了 Android 支持的接口。

于 2018-08-10T21:36:36.363 回答