我已经安装了Red5服务器。我创建了一个与oflaDemo相同的自定义应用程序。我可以在我的应用程序的/ streams文件夹中播放视频,我的应用程序名称是demo。我想将我的应用程序访问视频的目录RED5_HOME / demo / webapps / streams更改为共享计算机中的文件夹。我可以更改为本地计算机中的目录,例如“c:\ streams”。我使用CustomFileNameGenerator实现了IStreamFilenameGenerator。但我无法访问共享文件夹。这是我的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电脑。我还尝试将共享文件夹/192.168.1.20/streams映射到使用Windows中的地图网络驱动器功能的网络驱动器,并将该驱动器的名称命名为Z:。然后我试着通过这条道路 Z://流 现在也没有用。 任何人请帮助我弄错了。我一直在努力奋斗两天。请帮我解决这个问题。
提前多多感谢。
答案 0 :(得分:0)
你是否调试了
generateFilename
你的申请中有没有打过? 第一件事可能是在代码中添加一些log.debug语句并查看red5.log(或std.out)。
塞巴斯蒂安
答案 1 :(得分:0)
尝试:
public String generateFilename(IScope范围,字符串名称,字符串扩展名,GenerationType类型){ ...
返回playbackPath + filename;
}