【问题标题】:CodeName One IOS CaptureAudio代号一 IOS CaptureAudio
【发布时间】:2014-10-11 12:20:39
【问题描述】:

我从 Capture 类中调用了 captureAudio 方法。

它会在 IOS 7 上打开一个带有保存/取消按钮的空对话框。 没有向用户显示的音频条可以理解录音。

在安卓上没问题。

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    由于 iOS 没有像 Android 那样的捕获 UI,因此它完全用 Java 实现。您可以很容易地编写自己的实现,例如这是来自代号 One IOSImplementation.java 的文件,正是这样做的:

    public void captureAudio(ActionListener response) {
        String p = FileSystemStorage.getInstance().getAppHomePath();
        if(!p.endsWith("/")) {
            p += "/";
        }
        try {
            final Media media = MediaManager.createMediaRecorder(p + "cn1TempAudioFile", MediaManager.getAvailableRecordingMimeTypes()[0]);
            media.play();
    
            boolean b = Dialog.show("Recording", "", "Save", "Cancel");
            final Dialog d = new Dialog("Recording");
    
            media.pause();
            media.cleanup();
            d.dispose();
            if(b) {
                response.actionPerformed(new ActionEvent(p + "cn1TempAudioFile"));
            } else {
                FileSystemStorage.getInstance().delete(p + "cn1TempAudioFile");
                response.actionPerformed(null);
            }
        } catch(IOException err) {
            err.printStackTrace();
            response.actionPerformed(null);
        }
    }
    

    【讨论】:

    • 谢谢 shai,能否添加一些像 DataReceive 这样的事件来检测数据并与 UI 交互?
    • 我认为,移动框架在检测对象事件方面存在很多限制。
    • 有很多事件,我不知道你在说什么。
    • 媒体类没有任何事件。捕获类没有任何事件。我之前创建了一个在线网络工作室,用于录制音频和视频并在时间轴上混合它们,并且在录制和播放期间我可以完全控制这些对象。
    • 是的,媒体类旨在回答非常简单的用例,例如媒体播放器和面向业务的应用程序需求。创建一个通用的“低级”媒体 API 更具挑战性,我们不需要企业/企业甚至专业级用户这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    相关资源
    最近更新 更多