小编Lac*_*mov的帖子

iOS:如何在AVPlayer中拦截和操作字节

有没有办法在AVPlayer中播放音频之前截取字节数据并对每个字节执行XOR操作?

我正在构建一个音频流应用程序,并使用一个用C编写的小脚本向MP3文件添加简单的加密层。在Android中,它会像这样实时解码:

@Override
public int read(byte[] buffer, int offset, int readLength) throws FileDataSourceException {
        // ...
        if (readLength == 1 && offset >= 1 && offset <= 123) {
            buffer[offset] = (byte)(buffer[offset] ^ 11);
        }

        return bytesRead;
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您在上面看到的,在Android中反转XOR加密非常容易,因为我使用ExoPlayer并在其数据源类中覆盖read()方法。是否有机会在Swift中使用AVPlayer执行相同的操作?

这是整个想法的流程图:

AVPlayer加密流程图

谢谢。

encryption avfoundation ios avplayer swift

10
推荐指数
1
解决办法
375
查看次数

C++声明一组函数指针

基本上我需要实现一个事件处理程序类,但遇到一个错误,我不能声明一个空洞数组:

class SomeClass
{
public:
    void registerEventHandler(int event, void (*handler)(std::string));

private:
    // here i get this error: declaration of ‘eventHandlers’ as array of void
    void (*eventHandlers)(std::string)[TOTAL_EVENTS];
}

void SomeClass::registerEventHandler(int event, void (*handler)(std::string))
{
    eventHandlers[event] = handler;
}



void handler1(std::string response)
{
    printf("ON_INIT_EVENT handler\n");
}
void handler2(std::string response)
{
    printf("ON_READY_EVENT handler\n");
}

void main()
{
    someClass.registerEventHandler(ON_INIT_EVENT, handler1);
    someClass.registerEventHandler(ON_READY_EVENT, handler2);
}
Run Code Online (Sandbox Code Playgroud)

你能帮我弄清楚确切的语法吗?谢谢!

c++

3
推荐指数
1
解决办法
1879
查看次数

C++ 正则表达式匹配行首

我有一个看起来像这样的字符串

text here++ text
+ text text
+ text
text text
Run Code Online (Sandbox Code Playgroud)

我想将 + 替换为 - 但仅在行的开头,这样它看起来像这样:

text here++ text
- text text
- text
text text
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样的正则表达式:

string text = "the-above-text";
regex reg("^\\++.*$");
text = regex_replace(text, reg, "-");
Run Code Online (Sandbox Code Playgroud)

但是这个 ^ 匹配文本的开头,而不是行的开头。

我已经搜索了几个小时,似乎没有办法让引擎在多行模式下工作。

我有办法做到这一点吗?或者任何支持多行 ^ 和 $ 的较新的 C++ 标准?我正在使用 g++

谢谢!

c++ regex

3
推荐指数
1
解决办法
3145
查看次数

标签 统计

c++ ×2

avfoundation ×1

avplayer ×1

encryption ×1

ios ×1

regex ×1

swift ×1