我已经安装了 Red5 服务器。我创建了一个与 oflaDemo 相同的自定义应用程序。我可以在我的应用程序的 /streams 文件夹中播放视频,我的应用程序名称是 demo。我想将我的应用程序从中访问视频的目录 RED5_HOME/demo/webapps/streams 更改为共享机器中的文件夹。我可以切换到本地机器中的目录,例如“c:\streams”。我已经使用实现 IStreamFilenameGenerator 的 CustomFileNameGenerator 实现了这一点。但我无法访问共享文件夹。这是我的 CustomFileNameGenerator 类
import java.io.File;
import org.apache.log4j.Logger;
import org.red5.server.api.scope.IScope;
import org.red5.server.api.stream.IStreamFilenameGenerator;
public class CustomFilenameGenerator implements IStreamFilenameGenerator {
Logger log = Logger.getLogger(CustomFilenameGenerator.class);
/** Path that will store recorded videos. */
/public String recordPath = "recordedStreams/";/
/** Path that contains VOD streams. */
public String playbackPath;
/** Set if the path is absolute or relative */
public Boolean resolvesAbsolutePath;
public String generateFilename(IScope scope, String name, GenerationType type) {
// Generate filename without an extension.
return generateFilename(scope, name, null, type);
}
public String generateFilename(IScope scope, String name, String extension, GenerationType type) {
String filename = null;
if (type == GenerationType.PLAYBACK)
{
filename = playbackPath + name;
}
log.info("file Name " + filename);
if (extension != null)
// Add extension
filename += extension;
log.info("Extension and file name " + filename);
return filename;
}
public boolean resolvesToAbsolutePath()
{
log.info("resolvesAbsolutePath" + resolvesAbsolutePath);
return resolvesAbsolutePath;
}
public void setPlaybackPath(String playbackPath) {
this.playbackPath = playbackPath;
}
public void setResolvesAbsolutePath(Boolean resolvesAbsolutePath) {
this.resolvesAbsolutePath = resolvesAbsolutePath;
}
}
以下是我的 red5-web.properties 文件中的属性:
webapp.contextPath=/demo
webapp.virtualHosts=*, 192.168.1.20, 192.168.1.20:8088, 127.0.0.1:8088, 192.168.1.20:1935
playbackPath=C://streams/
resolvesAbsolutePath=true
以下是我的 red5-web.xml 文件中的 bean 定义
<bean id="streamFilenameGenerator" class="com.abhinow.demo.CustomFilenameGenerator" >
<property name="playbackPath" value="${playbackPath}" />
<property name="resolvesAbsolutePath" value="${resolvesAbsolutePath}" />
</bean>
上面给出的代码工作正常,我可以在 C:\streams 文件夹中播放视频,但是当我将播放路径更改为 /192.168.1.20/streams 之类的共享文件夹时,它不起作用。我正在使用windows电脑。我还尝试使用 Windows 中的映射网络驱动器功能将共享文件夹 /192.168.1.20/streams 映射到网络驱动器,并将该驱动器命名为 Z:。然后我尝试给出路径 Z://streams 现在它也不起作用。任何人都请帮助我在哪里弄错了。我已经为此苦苦挣扎了两天。请帮我解决这个问题。
提前非常感谢。