类型 函数 库 media.* 返回值 无 修订 版本 2024.3703 关键词 媒体,相机,照片 另请参阅 media.hasSource()
打开一个平台特定的界面,用于访问设备的照片库。此函数是异步的,这意味着它会立即返回,因此调用代码将继续执行直到其作用域结束;之后,应用程序将暂停,直到会话完成。默认情况下,图像对象会被添加到当前舞台的顶部,但也可以选择将图像保存到目录中。
Windows 桌面不支持此 API。
settings =
{
iphone =
{
plist =
{
NSPhotoLibraryUsageDescription = "This app would like to access the photo library.",
},
},
}
media.selectPhoto ( { listener [, mediaSource] [, destination] [, origin] [, permittedArrowDirections] } )
监听器。 可以是函数监听器或表监听器。如果是表,它必须有一个 completion 方法。分派给监听器的事件将是一个 completion 事件,并带有以下附加属性
`event.completed` 如果用户选择了一张照片,则为 `true`;如果用户取消了相机或照片选择,则为 `false`。
media.selectPhoto( { listener=sessionComplete } )
常量。 可以是以下之一
media.PhotoLibrarymedia.SavedPhotosAlbum表。 如果提供,所选图像将保存到文件中。在这种情况下,不会向舞台添加 显示对象。此表应采用以下形式{ [baseDir= ,] filename= }
表。 仅适用于 iPad。定义对象(通常是按钮)的边界,iPad 的弹出窗口将从此处弹出。一种方便的模式是传递对象的 `contentBounds` 属性。
表。 仅适用于 iPad。一个值数组,定义 iPad 弹出窗口箭头可以指向的方向。有效值为 `“up”`、`“down”`、`“left”`、`“right”` 或 `“any”`。默认值为 `“any”`。
local function onComplete( event )
local photo = event.target
print( "photo w,h = " .. photo.width .. "," .. photo.height )
end
if media.hasSource( media.PhotoLibrary ) then
media.selectPhoto( { mediaSource=media.PhotoLibrary, listener=onComplete } )
else
native.showAlert( "Corona", "This device does not have a photo library.", { "OK" } )
end
-- Selection completion listener
local function onComplete( event )
local photo = event.target
if photo then
print( "photo w,h = " .. photo.width .. "," .. photo.height )
end
end
local button = display.newRect( 120, 240, 80, 70 )
local function pickPhoto( event )
media.selectPhoto(
{
mediaSource = media.SavedPhotosAlbum,
listener = onComplete,
origin = button.contentBounds,
permittedArrowDirections = { "right" },
destination = { baseDir=system.TemporaryDirectory, filename="image.jpg" }
})
end
button:addEventListener( "tap", pickPhoto )