mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
Android: Allow recording demo to write files on recent Android versions
This commit is contained in:
parent
070a6b35e9
commit
273275cf07
3 changed files with 35 additions and 33 deletions
|
|
@ -305,17 +305,14 @@ private:
|
|||
|
||||
LiveScrollingAudioDisplay liveAudioScroller;
|
||||
RecordingThumbnail recordingThumbnail;
|
||||
AudioRecorder recorder { recordingThumbnail.getAudioThumbnail() };
|
||||
AudioRecorder recorder { recordingThumbnail.getAudioThumbnail() };
|
||||
|
||||
Label explanationLabel { {}, "This page demonstrates how to record a wave file from the live audio input..\n\n"
|
||||
#if (JUCE_ANDROID || JUCE_IOS)
|
||||
"After you are done with your recording you can share with other apps."
|
||||
#else
|
||||
"Pressing record will start recording a file in your \"Documents\" folder."
|
||||
#endif
|
||||
};
|
||||
Label explanationLabel { {},
|
||||
"This page demonstrates how to record a wave file from the live audio input.\n\n"
|
||||
"After you are done with your recording you can choose where to save it." };
|
||||
TextButton recordButton { "Record" };
|
||||
File lastRecording;
|
||||
FileChooser chooser { "Output file...", File::getCurrentWorkingDirectory().getChildFile ("recording.wav"), "*.wav" };
|
||||
|
||||
void startRecording()
|
||||
{
|
||||
|
|
@ -350,28 +347,18 @@ private:
|
|||
{
|
||||
recorder.stop();
|
||||
|
||||
#if JUCE_CONTENT_SHARING
|
||||
SafePointer<AudioRecordingDemo> safeThis (this);
|
||||
File fileToShare = lastRecording;
|
||||
chooser.launchAsync ( FileBrowserComponent::saveMode
|
||||
| FileBrowserComponent::canSelectFiles
|
||||
| FileBrowserComponent::warnAboutOverwriting,
|
||||
[this] (const FileChooser& c)
|
||||
{
|
||||
if (FileInputStream inputStream (lastRecording); inputStream.openedOk())
|
||||
if (const auto outputStream = makeOutputStream (c.getURLResult()))
|
||||
outputStream->writeFromInputStream (inputStream, -1);
|
||||
|
||||
ContentSharer::getInstance()->shareFiles (Array<URL> ({URL (fileToShare)}),
|
||||
[safeThis, fileToShare] (bool success, const String& error)
|
||||
{
|
||||
if (fileToShare.existsAsFile())
|
||||
fileToShare.deleteFile();
|
||||
|
||||
if (! success && error.isNotEmpty())
|
||||
NativeMessageBox::showAsync (MessageBoxOptions()
|
||||
.withIconType (MessageBoxIconType::WarningIcon)
|
||||
.withTitle ("Sharing Error")
|
||||
.withMessage (error),
|
||||
nullptr);
|
||||
});
|
||||
#endif
|
||||
|
||||
lastRecording = File();
|
||||
recordButton.setButtonText ("Record");
|
||||
recordingThumbnail.setDisplayFullThumbnail (true);
|
||||
recordButton.setButtonText ("Record");
|
||||
recordingThumbnail.setDisplayFullThumbnail (true);
|
||||
});
|
||||
}
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioRecordingDemo)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue