1

我正在使用 Appcelerator Titanium 3.0.2 来允许用户观看/下载视频和音频。这是获取文件对象并播放音频的部分代码。

var filename = self.url.substring(self.url.lastIndexOf('/')+1);
var file = Ti.Filesystem.getFile(Ti.Filesystem.tempDirectory,filename);
if(!file.exists())
    self._download(self.url, filename, Ti.Filesystem.tempDirectory, function(){
      setAudUrl(file.nativePath);
      timeBar.max = audPlayer.duration*1000;
      prgHandle = setInterval(updateProgressBar,10000);
      audPlayer.play();
      audCtrlBar.show();
      loading.hide();
    },
    function(_progress,_position){
      httpClient=_position;
      loading.show();
    },
    function(){
      noLabel.show();
      loading.hide();
    });
else {
    setAudUrl(file.nativePath);
    timeBar.max = audPlayer.duration*1000;
    prgHandle = setInterval(updateProgressBar,10000);
    audPlayer.play();
    audCtrlBar.show();
}

此代码有效,但我的问题是如何在用户存在应用程序时删除文件。由于 Apple 要求 /tmp 目录中的文件将在用户存在应用程序后删除。任何人都可以帮忙吗?谢谢。

4

1 回答 1

0

您可以使用 Titanium 的应用程序事件pausepaused。当应用程序变为非活动状态时调用它们,但这仅适用于 iOS。

Titanium.App.addEventListener('pause' /* or paused, see docs */, function() {
  var dir = Ti.Filesystem.getFile(Ti.Filesystem.tempDirectory, 'tmpDownloads'); // ensure that you use the same folder for storing the downloaded files. A separate folder is easier to remove.
  if(dir.exists() && dir.isDirectory()) {
    dir.deleteDirectory(true); // true removes recursively the directory and its contents
  }
});

您需要在应用程序时再次创建目录resume

于 2013-04-07T09:40:51.143 回答