首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么heroku会给我这个“不兼容类型”错误?

为什么heroku会给我这个“不兼容类型”错误?
EN

Stack Overflow用户
提问于 2021-05-03 14:21:33
回答 1查看 93关注 0票数 0

我试图在Heroku.com上部署我的不和谐机器人,但是我收到了一个奇怪的错误.下面是抛出错误的类的代码:

代码语言:javascript
复制
package main.Events.lavaplayer;

import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
import com.sedmelluq.discord.lavaplayer.track.playback.MutableAudioFrame;
import net.dv8tion.jda.api.audio.AudioSendHandler;
import org.jetbrains.annotations.Nullable;

import java.nio.ByteBuffer;

public class AudioPlayerSendHandler implements AudioSendHandler {
    private final AudioPlayer audioPlayer;
    private final ByteBuffer buffer;
    private final MutableAudioFrame frame;

    public AudioPlayerSendHandler(AudioPlayer audioPlayer) {
        this.audioPlayer = audioPlayer;
        this.buffer = ByteBuffer.allocate(1024);
        this.frame = new MutableAudioFrame();
        this.frame.setBuffer(buffer);
    }

    @Override
    public boolean canProvide() {
        return this.audioPlayer.provide(this.frame);
    }

    @Nullable
    @Override
    public ByteBuffer provide20MsAudio() {
        return this.buffer.flip();
    }

    @Override
    public boolean isOpus() {
        return true;
    }
}

这段代码在使用Intellij编译时不会给我带来任何问题,但是当我试图将它部署到Heroku时,它们会给出以下错误:

错误:不兼容类型: java.nio.Buffer不能转换为@org.jetbrains.annotations.Nullable java.nio.ByteBuffer返回this.buffer.flip();

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-03 14:31:12

flip返回一个Buffer而不是ByteBuffer,因此需要一个强制转换

代码语言:javascript
复制
public ByteBuffer provide20MsAudio() {
    return (ByteBuffer) buffer.flip();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67370581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档